Cod sursa(job #1098552)

Utilizator sorynsooSorin Soo sorynsoo Data 4 februarie 2014 21:31:52
Problema Castel Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream cin("castel.in");
ofstream cout("castel.out");
int i,j,n,m,cheie[151][151],id[151][151],xok,yok,x2,y2,c,k,rasp=1,aux;
bool are[22000],ok=true;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
vector<int> vx,vy;
int main()
{
    cin>>n>>m>>k;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
        {
            cin>>cheie[i][j];
            c++;
            id[i][j]=c;
            if(c==k)
            {
                vx.push_back(i);
                vy.push_back(j);
                are[cheie[i][j]]=1;
                id[i][j]=-id[i][j];
            }
        }
    }
    while(ok==true)
    {
        ok=false;
        for(i=0; i<rasp; i++)
        {
            if(i==7)
                i=7;
            for(j=0; j<4; j++)
            {
                x2=vx[i]+dx[j];
                y2=vy[i]+dy[j];
                if(are[cheie[x2][y2]]==1 && id[x2][y2]>=0) // daca am cheie si nu e vizat
                {

                    are[id[x2][y2]]=1; // adaug cheia noua
                    id[x2][y2]=-id[x2][y2]; // il marchez ca folosit
                    ok=true;
                    rasp++; //cresc nr de rasp
                    vx.push_back(x2); vy.push_back(y2); // il adaug in vector
                }
            }
        }
    }
    cout<<rasp<<"\n";
   /* for(i=0; i<vx.size(); i++)
        cout<<vx[i]<<" "<<vy[i]<<"\n";*/
}