#3171
Pentru ca locuitorii unui oraș să supraviețuiască, acesta trebuie să aibă o rezervă de cel puțin \( 1\text{ km}^{3} \) de apă. Pentru a face față mai ușor unor catastrofe, orașele pot forma alianțe în care se pot împrumuta reciproc cu apă. Astfel, într-o alianță formată din h orașe, fiecare oraș trebuie să aibă o rezervă de cel puțin \( {h}\text{ km}^{3} \) de apă, pentru a supraviețui locuitorii săi și a putea să împrumute câte \( 1\text{ km}^{3} \) de apă fiecăruia dintre celelalte h-1 orașe aliate.
Se cere să determinați cel mai mare număr de orașe h care se pot alia.
Scrieți un program care citește numărul m de orașe și un șir de m numere naturale strict pozitive reprezentând rezervele de apă ale orașelor, să se determine numărul maxim de orașe h care pot forma o alianță, adică există cel puțin h orașe care pot reține fiecare o cantitate de apă cel puțin egală cu \( h\text{ km}^{3} \).
| Problema | WaterReserve | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 64 MB
/
Stivă 64 MB
|
| Id soluție | #64962930 | Utilizator | |
| Fișier | waterreserve.cpp | Dimensiune | 466 B |
| Data încărcării | 26 Iunie 2026, 03:58 | Scor/rezultat | Eroare de compilare |
waterreserve.cpp:1:20: warning: extra tokens at end of #include directive 1 | #include <iostream>\n#include <vector>\n#include <algorithm>\n\nint main() {\n int m;\n std::cin >> m;\n\n std::vector<int> a(m);\n for (int i = 0; i < m; i++) {\n std::cin >> a[i];\n }\n\n std::sort(a.rbegin(), a.rend());\n\n int h = 0;\n for (int i = 0; i < m; i++) {\n if (a[i] >= i + 1) {\n h = i + 1;\n } else {\n break;\n }\n }\n\n std::cout << h << std::endl;\n\n return 0;\n} | ^ /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crt1.o: in function \`_start': (.text+0x1b): undefined reference to \`main' collect2: error: ld returned 1 exit status
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema WaterReserve 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ă.