#1830
Armata Regelui
În Regatul din Sud nu e niciodată prea devreme să te pregăteşti de război. De aceea, în fiecare an Regele organizează un concurs în care premiaţi sunt cei mai buni strategi. Mai întâi, Strategul Şef alege configuraţia ideală de razboi, în care armata va fi dispusă. O trupă într-o configurație e reprezentată de o literă mica din mulțimea {'a'..'z'}
. De exemplu, configuraţia “ffscaam"
descrie o armată formată din doi fermieri, un soldat, un cavaler, doi arcaşi şi un mag. Bineînţeles, în timpul unei lupte, trupele nu îşi vor menţine neapărat poziiţile inţiale. Cu toate acestea, orice tip de trupă poate schimba poziţia cu maxim un alt tip de trupă, ştiut de dinainte de toţi locuitorii regatului. De asemenea se ştie că arcaşii nu schimbă poziţii decât între ei. Pentru exemplul anterior, dacă un fermier sau un soldat nu schimbă poziţii decât cu un alt fermier sau soldat, configuraţii echivalente cu “ffscaam"
sunt “fsfcaam"
şi “sffcaam"
.
Fiecare strateg concurent alege o configuraţie, iar câştigătorii sunt cei care aleg configuraţii echivalente cu cea a Strategului Şef.
Concursul EMPOWERSOFT, 2016
Problema | Armata Regelui | Operații I/O |
armata_regelui.in /armata_regelui.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 1 MB
/
Stivă 1 MB
|
Id soluție | #54631193 | Utilizator | |
Fișier | armata_regelui.cpp | Dimensiune | 971 B |
Data încărcării | 04 Decembrie 2024, 09:46 | Scor / rezultat | 90 puncte |
armata_regelui.cpp: In function 'void frecv(int*, std::string)': armata_regelui.cpp:10:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < s.length(); i++) ^ armata_regelui.cpp:11:15: warning: array subscript has type 'char' [-Wchar-subscripts] F[s[i]]++; ^ armata_regelui.cpp: In function 'int bun(std::string, std::string)': armata_regelui.cpp:24:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < s.length(); i++) ^ armata_regelui.cpp:25:42: warning: array subscript has type 'char' [-Wchar-subscripts] if(s[i] != a[i] && s[i] != A[a[i]]) ^ armata_regelui.cpp: In function 'int main()': armata_regelui.cpp:41:13: warning: array subscript has type 'char' [-Wchar-subscripts] A[c1] = c2; ^ armata_regelui.cpp:42:13: warning: array subscript has type 'char' [-Wchar-subscripts] A[c2] = c1; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0 secunde | OK. | 10 | 10 | ||
3 | 0 secunde | OK. | 10 | 10 | ||
4 | 0 secunde | OK. | 10 | 10 | ||
5 | 0.016 secunde | OK. | 10 | 10 | ||
6 | 0.036 secunde | OK. | 10 | 10 | ||
7 | 0.056 secunde | OK. | 10 | 10 | ||
8 | 0.068 secunde | OK. | 10 | 10 | ||
9 | 0.068 secunde | OK. | 10 | 10 | ||
Punctaj total | 90 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Armata Regelui 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ă.