Cod sursa(job #1154700)

Utilizator DanyPrvPirvoaica Daniel DanyPrv Data 26 martie 2014 12:21:19
Problema Castel Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
int q[2][150*150+1],m,n,v,lin,col,l,c,ok,p,u,a[151][151],viz[151][151],fr[150*150+1],i,j;
int dx[]={0,-1,1,0,0},dy[]={0,0,0,1,-1};
int main()
{
    f>>n>>m>>v;
    if(v%n==0){
        lin=v/n;
        col=m;
    }else{
        lin=v/m+1;
        col=v%m;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            f>>a[i][j];
    p=u=1;
    q[0][p]=lin;
    q[1][p]=col;
    ok=1;
    fr[v]=1;
    viz[lin][col]=1;
    while(ok==1){
        ok=0;
        p=1;
        while(p<=u){
            for(i=1;i<=4;i++){
                l=q[0][p]+dx[i];
                c=q[1][p]+dy[i];
                if(l>0&&c>0&&l<=n&&c<=m){
                    int v1=(l-1)*m+c;
                    if(viz[l][c]==0&&fr[a[l][c]]!=0){
                        ok=1;
                        q[0][++u]=l;
                        q[1][u]=c;
                        viz[l][c]=1;
                        fr[v1]=1;
                    }
                }
            }
            p++;
        }
    }
    g<<u;
    return 0;
}