Cod sursă (job #122078)

Utilizator avatar oana25 Popa Ioana-Alexandra oana25 IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp | 0,83 kb
Rundă Arhiva de probleme Status evaluat
Dată 22 feb. 2015 21:26:21 Scor 0
#include <fstream>
using namespace std;
ifstream f("fotografie.in");
ofstream g("fotografie.out");
int a[51][51],n,m,nr;
void citire()
{
    f>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        f>>a[i][j];
}
void fill(int i,int j,int nr)
{
    a[i][j]=nr;
    if(i>1 && a[i-1][j]==0) fill(i-1,j,nr);
    if(i<n && a[i+1][j]==0) fill(i+1,j,nr);
    if(j>1 && a[i][j-1]==0) fill(i,j-1,nr);
    if(j<m && a[i][j+1]==0) fill(i,j+1,nr);
}
void obiecte()
{
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        if(a[i][j]==0)
    {
        nr++;
        fill(i,j,nr);
    }
}
void afis()
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            g<<a[i][j]<<' ';
            g<<'\n';
    }
}
int main()
{
    citire();
    obiecte();
    g<<nr;
    return 0;
}