Cod sursa(job #2532922)

Utilizator cristiemanuelstroe cristian emanuel cristiemanuel Data 28 ianuarie 2020 16:39:29
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include    <iostream>
#include    <fstream>

using namespace std;

ifstream fin("zona3.in");
ofstream fout("zona3.out");

const int nmax=101;
const int di[]={-1,0,1,0},
          dj[]={0,1,0,-1};
int matrice[nmax][nmax],n,m,a[nmax*nmax],zona,rad,M[nmax][nmax];

void citire()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
           fin>>matrice[i][j];
}

void afisare()
{
    for(int i=1;i<=n;i++,cout<<endl)
        for(int j=1;j<=m;j++)
           cout<<M[i][j]<<' ';
}

int ok(int i, int j)
{
    if(i<1 || j<1 || i>n || j>m)
        return 0;
    return 1;
}

void Fill(int x, int y,int v)
{
    a[zona]++;
    matrice[x][y]=v;
    for(int i=0;i<4;i++)
    {
        int noul_i=x+di[i];
        int noul_j=y+dj[i];
        if(ok(noul_i,noul_j) && matrice[noul_i][noul_j]==1)
            Fill(noul_i,noul_j,v);
    }
}

void rezolvare()
{
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
          {
            if(matrice[i][j]==1)
            {
                zona++;
                Fill(i,j,3);
            }
          }
}

int main()
{
    citire();
    rezolvare();
    afisare();
}