#1126
Betisoare
Se presupune că unele dintre primele instrumente de calcul au fost beţişoarele de socotit. În problema noastră vom considera un număr ca fiind o succesiune de unul sau mai multe beţişoare, un beţişor fiind reprezentat de litera I
. Într-o expresie, între oricare două numere există semnul +
sau semnul *
.
Exemple de numere
I III IIIIIIIIIII
Exemple de expresii
III II*III I+I*III+IIIIIII
Scrieţi un program care evaluează astfel de expresii.
ONI GIM 2014, Clasa a VI-a
Problema | Betisoare | Operații I/O |
betisoare.in /betisoare.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
Id soluție | #54882748 | Utilizator | |
Fișier | betisoare.cpp | Dimensiune | 1.60 KB |
Data încărcării | 11 Decembrie 2024, 10:35 | Scor / rezultat | 20 puncte |
betisoare.cpp: In function 'int main()': betisoare.cpp:15:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(s[i]=='I'&&i<strlen(s)){ ^ betisoare.cpp:20:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(;i<strlen(s);i++){ ^ betisoare.cpp:24:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(s[i+1]=='I'&&i<strlen(s)-1){ ^ betisoare.cpp:36:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(s[i]=='I'&&i<strlen(s)){ ^ betisoare.cpp:39:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(i<strlen(s)-1&&s[i]!='I'&&s[i]!='+'&&s[i]!='*'){ ^ betisoare.cpp:46:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(;i<strlen(s);i++){ ^ betisoare.cpp:51:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(s[i+1]=='I'&&i<strlen(s)-1){ ^ betisoare.cpp:54:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(i<strlen(s)-1&&s[i+1]!='I'&&s[i+1]!='+'&&s[i+1]!='*'){ ^ betisoare.cpp:61:20: warning: 'ci' may be used uninitialized in this function [-Wmaybe-uninitialized] if(s[ci]=='+') rez+=nr; ^ betisoare.cpp:21:17: warning: 'ci' may be used uninitialized in this function [-Wmaybe-uninitialized] int ci; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
2 | 0 secunde | OK. | 3 | 3 | ||
3 | 0 secunde | Raspuns gresit. | 4 | 0 | ||
4 | Depășit | Limita de timp depășită | 4 | 0 | ||
5 | Depășit | Limita de timp depășită | 3 | 0 | ||
6 | Depășit | Limita de timp depășită | 4 | 0 | ||
7 | Depășit | Limita de timp depășită | 3 | 0 | ||
8 | Depășit | Limita de timp depășită | 4 | 0 | ||
9 | Depășit | Limita de timp depășită | 3 | 0 | ||
10 | 0.112 secunde | OK. | 3 | 3 | ||
11 | Depășit | Limita de timp depășită | 3 | 0 | ||
12 | Depășit | Limita de timp depășită | 3 | 0 | ||
13 | Depășit | Limita de timp depășită | 6 | 0 | ||
14 | Depășit | Limita de timp depășită | 5 | 0 | ||
15 | 0 secunde | OK. | 7 | 7 | ||
16 | 0 secunde | OK. | 7 | 7 | ||
17 | Depășit | Limita de timp depășită | 10 | 0 | ||
18 | Depășit | Limita de timp depășită | 7 | 0 | ||
19 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
20 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
Punctaj total | 20 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Betisoare 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ă.