Cod sursa(job #227335)
| Utilizator | Data | 4 decembrie 2008 09:22:30 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include<fstream.h>
struct strm{long int s,z;}v[250001];
int main()
{ long int j,p,i,q,m,n,nr=0;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
f>>n>>m;
for(i=1; i<=n; i++)
{f>>v[i].s;
if(v[i].s==0) {v[i].z=1; nr++;}
}
while(nr<n)
{for(i=1;i<=n;i++)
if(v[i].z==0 && v[v[i].s].z!=0)
{v[i].z=v[v[i].s].z+1;
nr++;
}
}
for(i=1;i<=m;i++)
{f>>q>>p;
if(p>=v[q].z) q=0;
else
for(j=1; j<=p && q!=0; j++)
q=v[q].s;
g<<q<<"\n";}
f.close();
g.close();
return 0;
} 