Cod sursa(job #2527549)

Utilizator betybety bety bety Data 20 ianuarie 2020 16:44:47
Problema Castel Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
}