Detalii evaluare #63119842

Rezumat problemă

În vremuri străvechi Pământul era locuit de către o civilizaţie neobişnuită condusă după reguli matematice foarte riguroase. Această civilizaţie era formată din mai multe oraşe-stat asemeni oraşelor antice. Fiecare oraş s-a dezvoltat treptat pornind de la un singur cartier de formă pătrată cu suprafaţa de un hectar, în jurul căruia se adăugau în fiecare an cartiere de câte un hectar fiecare în felul următor: în primul an s-a format cartierul iniţial, în al doilea an oraşul s-a extins formând patru noi cartiere în toate cele patru puncte cardinale, în anul următor oraşul s-a extins cu 8 noi cartiere dispuse în jurul cartierelor deja formate, şi aşa mai departe, în fiecare an oraşul extinzându-se cu încă un rând de cartiere. Cerințe:
  1. Dimensiunea suprafeţei (în hectare) pe care ar ocupa-o după t ani, dacă nu ar întâlni nici un alt oraş şi nici nu ar ajunge la marginea hărţii.
  2. Timpul scurs până când toate cele N oraşe şi-au încetat extinderea, începută din cartierele iniţiale ale căror coordonate se citesc din fişier, şi aria suprafeţei din hartă rămasă neocupată, exprimată în hectare.
ONI 2016, clasa a IX-a
Fișiere Candale Silviu (silviu) Marcel Dragan concurs

Detalii

Problema Civilizatie Operații I/O civilizatie.in/civilizatie.out
Limita timp 1.5 secunde Limita memorie Total: 128 MB / Stivă 8 MB
Id soluție #63119842 Utilizator MINEA GEORGE CHRISTIAN (GEORGE_CHRISTIAN_MINEA)
Fișier civilizatie.cpp Dimensiune 1.44 KB
Data încărcării 15 Februarie 2026, 18:59 Scor/rezultat Eroare de compilare

Evaluare

Mesaj compilare

civilizatie.cpp:9:37: error: conflicting declaration 'long long int fin [2001]'
 int d[2001][2001], p[2001], fin[2001];

                                     ^
civilizatie.cpp:4:10: error: 'fin' has a previous declaration as 'std::ifstream fin'
 ifstream fin("civilizatie.in");

          ^
civilizatie.cpp: In function 'int main()':
civilizatie.cpp:31:17: error: expected ')' before 'min'
                 min(v[i].y-1, y-v[i].y))+1;

                 ^
civilizatie.cpp:31:40: error: no matching function for call to 'min(const long long int&)'
                 min(v[i].y-1, y-v[i].y))+1;

                                        ^
civilizatie.cpp:31:40: note: candidates are:
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/istream:38,
                 from /usr/include/c++/4.8/sstream:38,
                 from /usr/include/c++/4.8/complex:45,
                 from /usr/include/c++/4.8/ccomplex:38,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52,
                 from civilizatie.cpp:1:
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: note: template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&)
     min(const _Tp& __a, const _Tp& __b)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: note:   template argument deduction/substitution failed:
civilizatie.cpp:31:40: note:   candidate expects 2 arguments, 1 provided
                 min(v[i].y-1, y-v[i].y))+1;

                                        ^
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/istream:38,
                 from /usr/include/c++/4.8/sstream:38,
                 from /usr/include/c++/4.8/complex:45,
                 from /usr/include/c++/4.8/ccomplex:38,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52,
                 from civilizatie.cpp:1:
/usr/include/c++/4.8/bits/stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:239:5: note:   template argument deduction/substitution failed:
civilizatie.cpp:31:40: note:   candidate expects 3 arguments, 1 provided
                 min(v[i].y-1, y-v[i].y))+1;

                                        ^
In file included from /usr/include/c++/4.8/algorithm:62:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64,
                 from civilizatie.cpp:1:
/usr/include/c++/4.8/bits/stl_algo.h:4221:5: note: template<class _Tp> _Tp std::min(std::initializer_list<_Tp>)
     min(initializer_list<_Tp> __l)
     ^
/usr/include/c++/4.8/bits/stl_algo.h:4221:5: note:   template argument deduction/substitution failed:
civilizatie.cpp:31:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
                 min(v[i].y-1, y-v[i].y))+1;

                                        ^
In file included from /usr/include/c++/4.8/algorithm:62:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64,
                 from civilizatie.cpp:1:
/usr/include/c++/4.8/bits/stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
     min(initializer_list<_Tp> __l, _Compare __comp)
     ^
/usr/include/c++/4.8/bits/stl_algo.h:4226:5: note:   template argument deduction/substitution failed:
civilizatie.cpp:31:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
                 min(v[i].y-1, y-v[i].y))+1;

                                        ^
civilizatie.cpp:45:30: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
    if(d[i][p[i]]<min1 && !fin[i]) 

                              ^
civilizatie.cpp:51:6: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
   fin[ind]=min1;

      ^
civilizatie.cpp:56:21: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
    if(i!=ind && !fin[i] && d[i][p[i]]!=fin[ind]) 

                     ^
civilizatie.cpp:56:43: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
    if(i!=ind && !fin[i] && d[i][p[i]]!=fin[ind]) 

                                           ^
civilizatie.cpp:59:18: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
     d[i][ind]=fin[ind]+max(0ll, aux-2*(fin[ind]-1)-1);

                  ^
civilizatie.cpp:59:43: error: no match for 'operator[]' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'long long int')
     d[i][ind]=fin[ind]+max(0ll, aux-2*(fin[ind]-1)-1);

                                           ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Civilizatie face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.

Du-te sus!