#4998
Sala de concurs de la ONI 2026 poate fi reprezentată ca o matrice pătratică, în care liniile sunt numerotate de sus în jos de la 0 la 2𝑁, iar coloanele sunt numerotate de la stânga la dreapta de la 0 la 2𝑁. Fiecare element al matricii reprezintă o bancă. Poziția unei bănci va fi identificată prin numărul liniei și numărul coloanei pe care se află.
Pe marginea sălii (linia 0, linia 2𝑁, coloana 0 și coloana 2𝑁) se află profesorii supraveghetori (toate aceste locuri sunt considerate ocupate de la început). Astfel, elevii pot ocupa doar cele (2𝑁 − 1) × (2𝑁 − 1) bănci din interiorul sălii, situate pe linii și coloane cu numere de la 1 la 2𝑁 − 1.
Definim distanța dintre două bănci situate în pozițiile (𝐿1, 𝐶1) și (𝐿2, 𝐶2) ca fiind max(|𝐿1 − 𝐿2|, |𝐶1 − 𝐶2|), unde
cu |𝑥| s-a notat modulul numărului 𝑥 (|𝑥| = 𝑥, dacă 𝑥 ≥ 0, respectiv −𝑥, dacă 𝑥 < 0).
În acest an, așezarea elevilor în bănci se face într-un mod mai special. Elevii intră în sală pe rând pentru a susține proba și se așază în bănci exact în ordinea în care intră. Când un elev intră în sală, analizează fiecare bancă neocupată, pentru a determina cea mai mică dintre distant, ele de la aceasta până la fiecare bancă ocupată (fie de un supraveghetor, fie de alt elev). Apoi se așază într-o bancă neocupată pentru care această distanță este maximă. Dacă există mai multe bănci neocupate care respectă această condit, ie, elevul trebuie să se așeze în prima, adică cea care este situată pe linia cu numărul cel mai mic, iar în caz de egalitate a liniilor, cea situată pe coloana cu numărul cel mai mic.
Pentru ca profesorii supraveghetori să verifice rapid dacă elevii s-au așezat corect, au nevoie de un program care să răspundă la întrebări de forma 𝑁 𝐾, cu semnificația: “În ce bancă se va așeza al 𝐾-lea elev care intră într-o sală de concurs de dimensiune (2𝑁 + 1) × (2𝑁 + 1), respectând regulile de mai sus?”.
Scrieți un program care răspunde la 𝑄 întrebări de forma descrisă în enunț.
ONI 2026, clasa a 8-a
| Problema | Bafta | Operații I/O |
bafta.in/bafta.out
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
| Id soluție | #64124383 | Utilizator | |
| Fișier | bafta.cpp | Dimensiune | 1.26 KB |
| Data încărcării | 18 Aprilie 2026, 19:41 | Scor/rezultat | 100 puncte |
bafta.cpp: In function ‘int main()’: bafta.cpp:56:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 56 | freopen("bafta.in","r",stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ bafta.cpp:57:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 57 | freopen("bafta.out","w",stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.001 secunde | OK. | 2 | 2 | ||
| 2 | 0.001 secunde | OK. | 2 | 2 | ||
| 3 | 0.001 secunde | OK. | 2 | 2 | ||
| 4 | 0.001 secunde | OK. | 2 | 2 | ||
| 5 | 0.001 secunde | OK. | 2 | 2 | ||
| 6 | 0.001 secunde | OK. | 2 | 2 | ||
| 7 | 0.001 secunde | OK. | 2 | 2 | ||
| 8 | 0.001 secunde | OK. | 2 | 2 | ||
| 9 | 0.001 secunde | OK. | 2 | 2 | ||
| 10 | 0.001 secunde | OK. | 2 | 2 | ||
| 11 | 0.001 secunde | OK. | 2 | 2 | ||
| 12 | 0.001 secunde | OK. | 3 | 3 | ||
| 13 | 0.001 secunde | OK. | 3 | 3 | ||
| 14 | 0.001 secunde | OK. | 3 | 3 | ||
| 15 | 0.001 secunde | OK. | 3 | 3 | ||
| 16 | 0.001 secunde | OK. | 3 | 3 | ||
| 17 | 0.001 secunde | OK. | 3 | 3 | ||
| 18 | 0.001 secunde | OK. | 3 | 3 | ||
| 19 | 0.001 secunde | OK. | 3 | 3 | ||
| 20 | 0.001 secunde | OK. | 3 | 3 | ||
| 21 | 0.001 secunde | OK. | 3 | 3 | ||
| 22 | 0.001 secunde | OK. | 3 | 3 | ||
| 23 | 0.001 secunde | OK. | 3 | 3 | ||
| 24 | 0.001 secunde | OK. | 3 | 3 | ||
| 25 | 0.003 secunde | OK. | 3 | 3 | ||
| 26 | 0.003 secunde | OK. | 3 | 3 | ||
| 27 | 0.002 secunde | OK. | 3 | 3 | ||
| 28 | 0.002 secunde | OK. | 3 | 3 | ||
| 29 | 0.001 secunde | OK. | 3 | 3 | ||
| 30 | 0.001 secunde | OK. | 3 | 3 | ||
| 31 | 0.015 secunde | OK. | 3 | 3 | ||
| 32 | 0.023 secunde | OK. | 3 | 3 | ||
| 33 | 0.029 secunde | OK. | 3 | 3 | ||
| 34 | 0.039 secunde | OK. | 3 | 3 | ||
| 35 | 0.021 secunde | OK. | 3 | 3 | ||
| 36 | 0.04 secunde | OK. | 3 | 3 | ||
| 37 | 0.039 secunde | OK. | 3 | 3 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Bafta 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ă.