#1702
Pietrele preţioase au fascinat omenirea încă din timpuri străvechi iar cele mai renumite dintre ele, cristalele, au devenit atât simbolul durităţii cât şi al eternităţii. În urma unui studiu ştiinţific, pe un eşantion de formă dreptunghiulară se pot observa diferite tipuri de molecule, dispuse într-o geometrie perfectă, pe M rânduri a câte N molecule fiecare, aliniate una lângă alta. O formaţiune cristalizabilă este alcătuită din 3 molecule de acelaşi tip, învecinate două câte două, având una dintre cele patru forme din imaginea alăturată (fig.1).
Fiecare formaţiune este înconjurată de jur-împrejur, ca în fig.2, de un înveliş special format şi el din molecule identice, de alt tip decât cele din formaţiunea cristalizabilă pe care o înconjoară şi o izolează de restul formaţiunilor moleculare. În acest fel, fiecare moleculă din formaţiunea cristalizabilă se învecinează la Nord, Sud, Est şi Vest cu o moleculă din aceeaşi formaţiune cristalizabilă sau cu o moleculă din învelişul special.
Fiecare formaţiune cristalizabilă se bombardează cu raze X şi în acest fel are loc cristalizarea, proces prin care învelişul special se extinde peste formaţiunea cristalizabilă pe care o înconjoară, formând o singură structură din care se va dezvolta cristalul.
Cerințe
ONI 2016, clasa a VII-a
| Problema | Cristale | Operații I/O |
cristale.in/cristale.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 1 MB
/
Stivă 1 MB
|
| Id soluție | #63730977 | Utilizator | |
| Fișier | cristale.cpp | Dimensiune | 2.39 KB |
| Data încărcării | 17 Martie 2026, 08:27 | Scor/rezultat | Eroare de compilare |
cristale.cpp: In function 'int main()': cristale.cpp:37:26: error: expected unqualified-id before '[' token auto [x,y] = q.front(); q.pop(); ^ cristale.cpp:40:34: error: 'x' was not declared in this scope int nx = x + dx[d]; ^ cristale.cpp:41:34: error: 'y' was not declared in this scope int ny = y + dy[d]; ^ cristale.cpp:54:26: error: expected unqualified-id before '[' token for(auto [x,y] : comp){ ^ cristale.cpp:54:26: error: expected ';' before '[' token cristale.cpp:54:27: error: 'x' was not declared in this scope for(auto [x,y] : comp){ ^ cristale.cpp:54:29: error: 'y' was not declared in this scope for(auto [x,y] : comp){ ^ cristale.cpp: In lambda function: cristale.cpp:54:32: error: expected '{' before ':' token for(auto [x,y] : comp){ ^ cristale.cpp: In function 'int main()': cristale.cpp:54:32: error: expected ';' before ':' token cristale.cpp:54:32: error: expected primary-expression before ':' token cristale.cpp:54:32: error: expected ')' before ':' token cristale.cpp:54:32: error: expected primary-expression before ':' token cristale.cpp:54:32: error: expected ';' before ':' token cristale.cpp:92:1: error: expected '}' at end of input } ^ cristale.cpp:92:1: error: expected '}' at end of input cristale.cpp:92:1: error: expected '}' at end of input cristale.cpp:24:9: warning: unused variable 'cnt' [-Wunused-variable] int cnt = 0; ^ cristale.cpp:92:1: error: expected '}' at end of input } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cristale 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ă.