Cod sursa(job #1646121)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 10 martie 2016 15:09:58
Problema Castel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
typedef struct coord
{
    int x,y;
};
coord c[22500];
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1},n,m,c1,i,j,p[151][151],n1,k1,coada[22500],k;
bool x[151][151];
bool OK(int i,int j)
{
    if(i<=n && i>=1 && j<=m && j>=1 && x[i][j]==0) return 1;
    return 0;
}
int main()
{
    f>>n>>m>>c1;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        f>>p[i][j];

    c[1].x=c1/m+1;
    if(c1%m!=0) c[1].y=c1%m;
    else c[1].y=m;
    n1=1;k1=1;coada[1]=c1;
    for(i=1;i<=n1;i++)
        for(k=0;k<4;k++)
            for(j=1;j<=k1;j++)
        if(OK(c[i].x+dx[k],c[i].y+dy[k]) && coada[j]==p[c[i].x+dx[k]][c[i].y+dy[k]])
        {
            n1++;
            c[n1].x=c[i].x+dx[k];
            c[n1].y=c[i].y+dy[k];
            x[c[n1].x][c[n1].y]=1;
            k1++;
            coada[k1]=(c[n1].x-1)*m+c[n1].y;
        }
    g<<k1;
}