Pagini recente » Cod sursa (job #540412) | Cod sursa (job #1577119) | Cod sursa (job #930521) | Cod sursa (job #1656308) | Cod sursa (job #1098551)
#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[23000],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";*/
}