Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | castel3.in, castel3.out | Sursă | OJI 2018, Clasa a 10-a |
Autor | Alin Burta | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Castel3
Arheologii au descoperit pe un platou muntos greu accesibil ruinele unui castel medieval, pe care l-au fotografiat din elicopter, obţinând harta digitizată a acestuia. Harta este memorată sub forma unui tablou bidimensional H, compus din NxN pătrate cu latura egală cu unitatea, având ca elemente numere naturale între 0 şi 15, care codifică forma pereţilor fiecărui pătrat unitar. Dacă scriem numărul natural H[i][j] în baza 2, folosind exact 4 cifre binare, fiecare bit dă informaţii despre unul dintre pereţii posibil de construit pe fiecare latură a pătratului unitar din poziţia (i,j), astfel:
- dacă bitul de pe poziţia 0 are valoarea 1, atunci există perete pe latura vestică (latura din stânga);
- dacă bitul de pe poziţia 1 are valoarea 1, atunci există perete pe latura sudică (latura de jos);
- dacă bitul de pe poziţia 2 are valoarea 1, atunci există perete pe latura estică (latura din dreapta);
- dacă bitul de pe poziţia 3 are valoarea 1, atunci există perete pe latura nordică (latura de sus);
Pentru un număr scris în baza 2, numerotarea cifrelor începe cu poziţia 0, de la dreapta la stânga.
Castelul este interesant deoarece, pentru realizarea unei mai bune apărări, camerele ce-l compun sunt construite fie independent, fie una în interiorul alteia.
Orice camera este construită la o distanţă de cel puţin o unitate faţă de zidul ce împrejmuieşte castelul sau faţă de pereţii altor camere.
Folosind harta, arheologii doresc să afle informaţii privind numărul camerelor şi camera de arie maximă. Prin arie a unei camere se înţelege numărul pătratelor unitate cuprinse în interiorul pereţilor aceasteia, fără a socoti ariile camerelor construite în interiorul ei.
Cerinţa
Cunoscând codificarea hărţii castelului, să se determine:
- numărul total al camerelor din castel
- aria maximă a unei camere
- coordonatele colţurilor din stânga-sus, respectiv dreapta-jos a camerei cu aria maximă. Dacă există mai multe camere având aceeaşi arie maximă, atunci se vor afişa coordonatele camerei având colţul din stânga-sus (lin1, col1) cu lin1 minimă, iar la linii egale pe aceea cu col1 minimă.
Date de intrare
Datele de intrare se citesc din fişierul castel3.in, care are următoarea structură:
- Pe prima linie se află numărul natural C, care poate fi egal cu 1, 2 sau 3, în funcţie de cerinţa ce trebuie rezolvată;
- Pe linia următoare se află numărul natural N, reprezentând dimensiunea hărţii;
- Pe următoarele N linii se găsesc câte N numere naturale din intervalul [0,15], separate prin câte un spaţiu, reprezentând harta castelului.
Date de ieşire
Datele de ieşire se vor scrie în fişierul castel3.out, astfel:
- Dacă C = 1, pe prima linie se va scrie numărul total al camerelor din castel;
- Dacă C = 2, pe prima linie se va scrie aria maximă a unei camere din castel;
- Dacă C = 3, pe prima linie se vor scrie 4 numere naturale lin1 col1 lin2 col2, separate prin câte un spaţiu, reprezentând coordonatele colţurilor din stânga-sus, respectiv dreapta-jos ale camerei de arie maximă.
Restricţii
- 2 ≤ n ≤ 100
- Se garantează că în castel există cel puţin o cameră;
- Testele care au C = 1 totalizează 20 de puncte;
- Testele care au C = 2 totalizează 50 de puncte;
- Testele care au C = 3 totalizează 20 de puncte;
- Se acordă 10 puncte pentru exemple.
Exemplu
castel3.in | castel3.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...