#2436
castel1
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 N x N
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:
0
are valoarea 1
, atunci există perete pe latura vestică (latura din stânga);1
are valoarea 1
, atunci există perete pe latura sudică (latura de jos);2
are valoarea 1
, atunci există perete pe latura estică (latura din dreapta);3
are valoarea 1
, atunci există perete pe latura nordică (latura de sus);0
indică lipsa peretelui corespunzător acestuia;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.
Cunoscând codificarea hărţii castelului, să se determine:
1. numărul total al camerelor din castel
2. aria maximă a unei camere
3. 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ă.
Problema | castel1 | Operații I/O |
castel1.in /castel1.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 64 MB
/
Stivă 32 MB
|
Id soluție | #49788743 | Utilizator | |
Fișier | castel1.cpp | Dimensiune | 4.56 KB |
Data încărcării | 14 Martie 2024, 20:37 | Scor / rezultat | 100 puncte |
castel1.cpp: In function 'int main()': castel1.cpp:51:24: warning: narrowing conversion of '((crt / 1000) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+crt/1000, '0'+crt%1000/100, '0'+crt%100/10, '0'+crt%10, '\0' ^ castel1.cpp:51:38: warning: narrowing conversion of '(((crt % 1000) / 100) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+crt/1000, '0'+crt%1000/100, '0'+crt%100/10, '0'+crt%10, '\0' ^ castel1.cpp:51:56: warning: narrowing conversion of '(((crt % 100) / 10) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+crt/1000, '0'+crt%1000/100, '0'+crt%100/10, '0'+crt%10, '\0' ^ castel1.cpp:51:72: warning: narrowing conversion of '((crt % 10) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+crt/1000, '0'+crt%1000/100, '0'+crt%100/10, '0'+crt%10, '\0' ^ castel1.cpp:66:40: warning: narrowing conversion of '((prop / 1000) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+prop/1000, '0'+prop%1000/100, '0'+prop%100/10, '0'+prop%10, '\0' ^ castel1.cpp:66:55: warning: narrowing conversion of '(((prop % 1000) / 100) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+prop/1000, '0'+prop%1000/100, '0'+prop%100/10, '0'+prop%10, '\0' ^ castel1.cpp:66:74: warning: narrowing conversion of '(((prop % 100) / 10) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+prop/1000, '0'+prop%1000/100, '0'+prop%100/10, '0'+prop%10, '\0' ^ castel1.cpp:66:91: warning: narrowing conversion of '((prop % 10) + 48)' from 'int' to 'char' inside { } [-Wnarrowing] '0'+prop/1000, '0'+prop%1000/100, '0'+prop%100/10, '0'+prop%10, '\0' ^ castel1.cpp:25:9: warning: unused variable 'maxiA' [-Wunused-variable] int maxiA=0;///arie maxima ^ castel1.cpp:126:78: warning: 'delim[3]' may be used uninitialized in this function [-Wmaybe-uninitialized] if(c=='3')g<<delim[0]+1<<' '<<delim[1]+1<<' '<<delim[2]+1<<' '<<delim[3]+1; ^ castel1.cpp:126:61: warning: 'delim[2]' may be used uninitialized in this function [-Wmaybe-uninitialized] if(c=='3')g<<delim[0]+1<<' '<<delim[1]+1<<' '<<delim[2]+1<<' '<<delim[3]+1; ^ castel1.cpp:126:27: warning: 'delim[0]' may be used uninitialized in this function [-Wmaybe-uninitialized] if(c=='3')g<<delim[0]+1<<' '<<delim[1]+1<<' '<<delim[2]+1<<' '<<delim[3]+1; ^ castel1.cpp:126:44: warning: 'delim[1]' may be used uninitialized in this function [-Wmaybe-uninitialized] if(c=='3')g<<delim[0]+1<<' '<<delim[1]+1<<' '<<delim[2]+1<<' '<<delim[3]+1; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | OK. | 5 | 5 | ||
6 | 0 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | OK. | 5 | 5 | ||
8 | 0 secunde | OK. | 5 | 5 | ||
9 | 0 secunde | OK. | 5 | 5 | ||
10 | 0 secunde | OK. | 5 | 5 | ||
11 | 0 secunde | OK. | 5 | 5 | ||
12 | 0 secunde | OK. | 5 | 5 | ||
13 | 0 secunde | OK. | 5 | 5 | ||
14 | 0 secunde | OK. | 5 | 5 | ||
15 | 0 secunde | OK. | 5 | 5 | ||
16 | 0 secunde | OK. | 5 | 5 | ||
17 | 0 secunde | OK. | 5 | 5 | ||
18 | 0 secunde | OK. | 3 | 3 | ||
19 | 0 secunde | OK. | 4 | 4 | ||
20 | 0 secunde | OK. | 3 | 3 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema castel1 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ă.