#610
Spion
Într-un loc îndepărtat amplasat strategic, se află mai mulţi soldați identificaţi prin numere naturale nenule unice. Ordinea și disciplina militară impun aşezarea soldaților în linie la apelul de dimineață. Fiecare soldat a primit la sosirea în unitate numărul său și numerele de identificare ale camarazilor care trebuie să fie în stânga și în dreapta sa la aliniere. Excepţie fac doi soldaţi santinele care primesc doar numărul propriu de identificare şi se vor aşeza pe prima, respectiv pe ultima poziţie din linie. Uneori, unii soldaţi sunt plecați în misiuni, iar apelul de dimineaţă în unitate se face astfel: fiecare dintre cei prezenţi strigă cele trei numere primite – numărul lui, numărul camaradului din stânga lui şi al camaradului din dreapta lui, chiar dacă aceștia lipsesc.
Ei nu ştiu însă că, după un zid, stă pitită spioana Bulbuka, trimisă în recunoaștere. Ea îi ascultă şi înregistrează toate tripletele de numere care sunt strigate. După cele trei numere strigate de fiecare soldat, Bulbuka, fiind foarte inteligentă, deduce corect câte grupuri de soldaţi care și-au strigat prezența sunt până în momentul respectiv. Ea consideră că un grup este format din toţi acei soldaţi care şi-au strigat propriul număr şi care sunt aşezaţi unul lângă celălalt (dacă un soldat a strigat numărul camaradului, acesta din urmă nu este inclus în grup decât dacă a strigat şi el propriul număr).
Aflați care sunt numerele de grupuri de soldați deduse de Bulbuka în fiecare moment.
Urmasii lui Moisil, 2014, Clasa a IX-a
Problema | Spion | Operații I/O |
spion.in /spion.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 8 MB
/
Stivă 1 MB
|
Id soluție | #50144444 | Utilizator | |
Fișier | spion.cpp | Dimensiune | 617 B |
Data încărcării | 28 Martie 2024, 15:49 | Scor / rezultat | 100 puncte |
spion.cpp: In function 'int main()': spion.cpp:14:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("spion.in", "rt", stdin); ^ spion.cpp:15:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("spion.out", "wt", stdout); ^ spion.cpp:18:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &n); ^ spion.cpp:22:38: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d %d", &x, &s, &d); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | OK. | 5 | 5 | ||
6 | 0.004 secunde | OK. | 5 | 5 | ||
7 | 0.02 secunde | OK. | 5 | 5 | ||
8 | 0.024 secunde | OK. | 5 | 5 | ||
9 | 0.028 secunde | OK. | 5 | 5 | ||
10 | 0.036 secunde | OK. | 5 | 5 | ||
11 | 0.04 secunde | OK. | 5 | 5 | ||
12 | 0.04 secunde | OK. | 5 | 5 | ||
13 | 0.064 secunde | OK. | 5 | 5 | ||
14 | 0.084 secunde | OK. | 5 | 5 | ||
15 | 0.104 secunde | OK. | 5 | 5 | ||
16 | 0.128 secunde | OK. | 5 | 5 | ||
17 | 0.152 secunde | OK. | 5 | 5 | ||
18 | 0.188 secunde | OK. | 5 | 5 | ||
19 | 0.216 secunde | OK. | 5 | 5 | ||
20 | 0.24 secunde | OK. | 5 | 5 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Spion 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ă.