Pagini recente » Cod sursa (job #2835867) | Cod sursa (job #2243204) | Cod sursa (job #2684812) | Cod sursa (job #991377) | Cod sursa (job #2527549)
#include <fstream>
using namespace std;
ifstream cin("castel.in");
ofstream cout("castel.out");
short int v[150*150+5],sol[150*150+5];
bool viz[150*150+5];
inline bool rasp(short int nod)
{
if(sol[nod]!=-1)
return sol[nod];
viz[nod]=1;
if(viz[v[nod]]==0)
{
sol[nod]=rasp(v[nod]);
viz[nod]=0;
return sol[nod];
}
else
{
viz[nod]=0;
return 0;
}
}
int main()
{
short int n,m,start,cnt=0;
cin>>n>>m>>start;
for(short int i=1;i<=n;++i)
for(short int j=1;j<=m;++j)
cin>>v[(i-1)*m+j],sol[(i-1)*m+j]=-1;
sol[start]=1;
for(short int i=1;i<=n*m;++i)
{
if(sol[i]==-1)
sol[i]=rasp(i);
cnt+=sol[i];
}
cout<<cnt;
return 0;
}