#3341
oaste2
Pe un continent reprezentat printr-o matrice cu n
linii și m
coloane se află mai multe state, toate în conflict. Astfel, fiecare si-a mobilizat oastea. Fiecare element al matricei reprezintă o regiune. Două elemente, din matrice, învecinate pe linie sau pe coloană (nu si pe diagonală) reprezintă două regiuni care aparțin aceluiași stat. Un element din matrice ce contine cifra 0
este o regiune neutră care delimitează statele si nu are soldați. Elementul ce conține o cifră c
nenulă este o regiune ce aparține unui stat și are c
soldați. Să se determine numărul S
maxim de soldați dintr-un stat al continentului precum și numărul R
minim de regiuni pe care le poate avea un stat cu S
soldati.
Problema | oaste2 | Operații I/O |
oaste2.in /oaste2.out
|
---|---|---|---|
Limita timp | 0.01 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
Id soluție | #23743574 | Utilizator | |
Fișier | oaste2.cpp | Dimensiune | 767 B |
Data încărcării | 23 August 2020, 19:25 | Scor / rezultat | Eroare de compilare |
oaste2.cpp:1:10: error: #include expects "FILENAME" or <FILENAME> #include using namespace std; ifstream cin("oaste2.in"); ofstream cout("oaste2.out"); int n, m, a[101][101], c, sum, cmin = 1000000, smax = 0; bool inmat(int i, int j){ return i >= 1 && j >= 1 && i <= n && j <= m; } int di[]={0,0,-1,1}, dj[]={-1,1,0,0}; void fill(int i, int j){ c++; sum += a[i][j]; a[i][j] = 0; for(int d = 0; d < 4; ++d){ int inou = i + di[d]; int jnou = j + dj[d]; if(inmat(inou, jnou) && a[inou][jnou]) fill(inou, jnou); } } int main(){ cin >> n >> m; for(int i = 1; i <= n; ++i) for(int j = 1; j <= m; ++j) cin >> a[i][j]; for(int i = 1; i <= n; ++i) for(int j = 1; j <= m; ++j) if(a[i][j]){ c = 0, sum = 0; fill(i,j); if(sum > smax) smax = sum, cmin = c; else if(sum == smax && c < cmin) cmin = c; } cout << smax << ' ' << cmin; return 0; } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema oaste2 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ă.