Cod sursa(job #393598)
| Utilizator | Data | 9 februarie 2010 18:30:07 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
# include <fstream>
# include <cstdio>
using namespace std;
int t[250003], s[250003], n, m;
ifstream fin ("stramosi.in");
void read ()
{
fin>>n>>m;
for (int i=1;i<=n;i++)
{
fin>>t[i];
if (t[i]==0)
s[i]=0;
else
s[i]=1+s[t[i]];
}
}
int afla (int q, int p)
{
if (s[q]<p)
return 0;
for(int i=1;i<=p;i++)
q=t[q];
return q;
}
int main ()
{
read ();
freopen ("stramosi.out", "w", stdout);
int p, q;
for (;m;--m)
{
fin>>q>>p;
printf("%d\n", afla(q, p));
}
return 0;
}
