Cod sursa(job #1113718)

Utilizator gabib97Gabriel Boroghina gabib97 Data 20 februarie 2014 20:47:49
Problema Castel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <stdio.h>

using namespace std;
int n,m,i,j,k,xi,yi,h[155][155],dx[]={0,0,1,-1},dy[]={1,-1,0,0},c[4][10000],p,u,o[22505],b[155][155],nr;
void lee()
{
    int i,j,in,jn,dn,k;
    b[xi][yi]=1;
    p=1; u=1;
    c[0][p]=xi; c[1][p]=yi;
    while (p<=u)
    {
        i=c[0][p]; j=c[1][p];
        for (k=0;k<4;k++)
        {
            in=i+dx[k];
            jn=j+dy[k];
            dn=(in-1)*m+jn;
            if (in>0&&jn>0&&in<=n&&jn<=m&&o[h[in][jn]]==1)
            {
                u++;
                c[0][u]=in;
                c[1][u]=jn;
                b[in][jn]=1;
                o[dn]=1;
            }
        }
        p++;
    }
}
int main()
{
    freopen ("castel.in","r",stdin);
    freopen ("castel.out","w",stdout);
    scanf("%i%i%i",&n,&m,&k);
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            scanf("%i",&h[i][j]);
    xi=k/m+1; yi=k-(k/m);
    o[k]=1;
    lee();
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            if (b[i][j]==1)
                nr++;
    printf("%i",nr);
    fclose(stdin);
    fclose(stdout);
    return 0;
}