#1714
Pandora
Anul 2154, undeva pe luxurianta planetă Pandora.
Aici coloniștii RDA (Resources Development Administration) doresc să-și stabilească o bază stelară pentru a exploata rezervele naturale de unobtainium, un minereu rar și prețios aflat din belșug pe munții plutitori (Hallelujah Mountains), munți ce plutesc lent purtați de curenții magnetici asemănător aisbergurilor în mare, pe suprafața planetei formată din gaz lichid.
Pentru prospectarea și exploatarea zăcămintelor de minereu este necesară cartografierea suprafeței planetei și întocmirea unei hărți digitizate reprezentate sub forma unui tablou bidimensional. Astfel, regiunea de interes geologic este împărţită în N×N
pătrate teritoriale identice (zone), fiecare zonă fiind identificată prin tripletul (x,y,c)
, unde (x,y)
reprezintă coordonatele zonei teritoriale (x
– linia, y
– coloana), iar c
cota (înălțimea). Între zonele ocupate de munții există vaste zone de gaz lichid, zone care au cota 0
.
Pentru recoltarea și transportul unobtainiumului către baza stelară coloniștii RDA folosesc spice-harvesters, nave speciale cu aterizarea pe verticală.
Aterizarea pe munții plutitori reprezintă o adevărată provocare pentru piloții RDA. Pentru a putea ateriza, piloții trebuie să identifice un sector plat (platformă de aterizare), platformă care să respecte designul trenului de aterizare al navelor (vezi figura alăturată). Platforma are forma unui pătrat de latură k
ce este format din k*k
zone teritoriale, astfel (k*k)-4
zone au aceeași cotă, iar cele 4
colțuri ale pătratului au cota strict mai mică decât restul zonelor pătratului.
Cunoscând descrierea a M
zone teritoriale ce alcătuiesc munții plutitori să se determine coordonatele colțului stânga-sus al platformelor de aterizare pentru munții plutitori care permit aterizarea.
Problema | Pandora | Operații I/O |
![]() pandora.in /pandora.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 16 MB
/
Stivă 16 MB
|
Id soluție | #42581690 | Utilizator | |
Fișier | pandora.cpp | Dimensiune | 2.17 KB |
Data încărcării | 11 Martie 2023, 01:19 | Scor / rezultat | Eroare de compilare |
pandora.cpp:29:13: error: 'int j1' redeclared as different kind of symbol int i1, i2, j1, j2; ^ In file included from /usr/include/features.h:374:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/os_defines.h:39, from /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h:426, from /usr/include/c++/4.8/cstring:41, from pandora.cpp:1: /usr/include/i386-linux-gnu/bits/mathcalls.h:238:1: error: previous declaration of 'double j1(double)' __MATHCALL (j1,, (_Mdouble_)); ^ pandora.cpp: In function 'void dfs(int, int)': pandora.cpp:46:19: error: no matching function for call to 'min(double (&)(double)throw (), int&)' j1 = min(j1, j); ^ pandora.cpp:46:19: 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from pandora.cpp:2: /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: pandora.cpp:46:19: note: deduced conflicting types for parameter 'const _Tp' ('double(double)throw ()' and 'int') j1 = min(j1, j); ^ 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from pandora.cpp:2: /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: pandora.cpp:46:19: note: deduced conflicting types for parameter 'const _Tp' ('double(double)throw ()' and 'int') j1 = min(j1, j); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from pandora.cpp:5: /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: pandora.cpp:46:19: note: mismatched types 'std::initializer_list<_Tp>' and 'double (*)(double)throw ()' j1 = min(j1, j); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from pandora.cpp:5: /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: pandora.cpp:46:19: note: mismatched types 'std::initializer_list<_Tp>' and 'double (*)(double)throw ()' j1 = min(j1, j); ^ pandora.cpp: In function 'void find_square()': pandora.cpp:74:22: error: invalid conversion from 'double (*)(double)throw ()' to 'int' [-fpermissive] for (int j = j1; j <= j2; j++) { ^ pandora.cpp: In function 'void solve()': pandora.cpp:87:27: error: assignment of function 'double j1(double)' i1 = NMAX, j1 = NMAX; ^ pandora.cpp:87:27: error: cannot convert 'const int' to 'double(double)throw ()' in assignment
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Pandora face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.