#2385
oaste
Pe un continent reprezentat printr-o matrice cu n
linii si m
coloane se aflá mai multe state, toate aflate in conflict. Astfel, fiecare si-a mobilizat oastea. Elementele matrici memoreazá cäte o cifrá. Doua elemente ínvecinate pe linie sau pe coloaná (nu si pe diagonalá) apartin aceluiasi stat si se numesc regiuni. O pozitie din matrice ce contine cifra 0
este o regiune neutra si nu are soldati, iar pozitia ce contine o cifra c
nenula apartine unui stat si are c
soldati. Determinati regiunea cu cei mai multi soldati din statul cu cei mai multi soldati.
Problema | oaste | Operații I/O |
oaste.in /oaste.out
|
---|---|---|---|
Limita timp | 0.05 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #49733030 | Utilizator | |
Fișier | oaste.cpp | Dimensiune | 1.17 KB |
Data încărcării | 13 Martie 2024, 14:14 | Scor / rezultat | Eroare de compilare |
oaste.cpp: In function 'void fill(int, int)': oaste.cpp:3:381: error: 'elseif' was not declared in this scope using namespace std;ifstream in("oaste.in");ofstream out("oaste.out");int a[105][105], nrs, rsmax, pozi, pozj, di[]={-1, 0, 0, 1}, dj[]={0, -1, 1, 0};void fill(int i, int j){ if(a[i][j]>rsmax) { rsmax=a[i][j]; pozi=i; pozj=j; } if(a[i][j]==rsmax) { if(pozi>i) { pozi=i; pozj=j; } elseif(pozi==i && pozj>j) { pozi=i; pozj=j; } } nrs=nrs+a[i][j]; a[i][j]=0; for(int k=0;k<4;k++) { int l, c; l=i+di[k]; c=j+dj[k]; if(a[l][c]!=0) fill(l, c); } }int main(){ int nrsmax=0, n, m, pozl, pozc, rsmaxf=0; in>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) in>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(a[i][j]!=0) { nrs=0; rsmax=0; fill(i, j); if(nrs>nrsmax) { nrsmax=nrs; rsmaxf=rsmax; pozl=pozi; pozc=pozj; } } } out<<rsmaxf<<" "<<pozl<<" "<<pozc; return 0;} ^ oaste.cpp:3:394: error: expected ';' before '{' token using namespace std;ifstream in("oaste.in");ofstream out("oaste.out");int a[105][105], nrs, rsmax, pozi, pozj, di[]={-1, 0, 0, 1}, dj[]={0, -1, 1, 0};void fill(int i, int j){ if(a[i][j]>rsmax) { rsmax=a[i][j]; pozi=i; pozj=j; } if(a[i][j]==rsmax) { if(pozi>i) { pozi=i; pozj=j; } elseif(pozi==i && pozj>j) { pozi=i; pozj=j; } } nrs=nrs+a[i][j]; a[i][j]=0; for(int k=0;k<4;k++) { int l, c; l=i+di[k]; c=j+dj[k]; if(a[l][c]!=0) fill(l, c); } }int main(){ int nrsmax=0, n, m, pozl, pozc, rsmaxf=0; in>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) in>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(a[i][j]!=0) { nrs=0; rsmax=0; fill(i, j); if(nrs>nrsmax) { nrsmax=nrs; rsmaxf=rsmax; pozl=pozi; pozc=pozj; } } } out<<rsmaxf<<" "<<pozl<<" "<<pozc; return 0;} ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema oaste 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ă.