Cod sursa(job #2755067)
Utilizator | Data | 26 mai 2021 19:20:16 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.79 kb |
#include <fstream>
using namespace std;
int v[250005];
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int N, M, Q, P, r, nr=0;
int main()
{
fin >>N>>M;
for(int i=1;i<=N;++i)
{
fin >> v[i];
if(v[i]==i-1)
nr++;
}
if(nr==N)
{
for(int i=1;i<=M;++i)
{
fin >> Q >> P;
if(Q >= P)
fout << Q-P << '\n';
else
fout << 0 << '\n';
}
}
else
{
for(int i=1; i<=M; ++i)
{
fin >> Q >> P;
r=Q;
while(P>0 && r>0)
{
r = v[r];
P--;
}
fout << r << '\n';
}
}
return 0;
}