#4436
nisip
Misiunea lui Loid constă în a dinamita piatra de pe unele niveluri pentru a provoca surparea minei și curgerea nisipului spre nivelurile inferioare. El are de îndeplinit m
sarcini numerotate de la 1
la m
. Acestea sunt de două tipuri:
1 t p
(dinamitare): Loid trebuie ca, la secunda t
, să dinamiteze piatra de pe nivelul p
al minei. Pentru orice astfel de sarcină, Loid știe că, la secunda t
, nivelul p
conține piatră, iar aceasta va fi înlocuită de aer la secunda t+1
, după dinamitare.2 t p
(întrebare): Pentru a i se testa perspicacitatea, Loid este întrebat ce conține nivelul p
al minei la secunda t
: aer, nisip sau piatră?Dându-se n
, conținuturile tuturor nivelurilor minei la secunda 0
, m
și sarcinile care trebuie îndeplinite, să se determine răspunsurile la sarcinile de tip întrebare.
ONI 2023, clasa a IX-a
Problema | nisip | Operații I/O |
nisip.in /nisip.out
|
---|---|---|---|
Limita timp | 1.5 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
Id soluție | #50689953 | Utilizator | |
Fișier | nisip.cpp | Dimensiune | 6.44 KB |
Data încărcării | 21 Aprilie 2024, 14:14 | Scor / rezultat | 100 puncte |
nisip.cpp: In function 'void initPointers()': nisip.cpp:10:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] #define FOR(i, a, b) for(int i = (a); i <= (b); ++i) ^ nisip.cpp:51:5: note: in expansion of macro 'FOR' FOR(i, 1, rocks.size() - 2) ^ nisip.cpp: In function 'int getStart(int, int, int)': nisip.cpp:111:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if (ind > rocks[removedIndex] && rocks[firstRockIndex] - ind <= sand[firstRockIndex] || ^ nisip.cpp: In function 'int getMovingBlock(int, int, int, int)': nisip.cpp:120:8: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses] if (dt == 1) ^ nisip.cpp: In function 'int main()': nisip.cpp:218:33: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen(IN_FILE, "r", stdin); ^ nisip.cpp:219:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen(OUT_FILE, "w", stdout); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
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 secunde | OK. | 10 | 10 | ||
6 | 0 secunde | OK. | 10 | 10 | ||
7 | 0.06 secunde | OK. | 10 | 10 | ||
8 | 0.064 secunde | OK. | 10 | 10 | ||
9 | 0.08 secunde | OK. | 10 | 10 | ||
10 | 0.212 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema nisip 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ă.