Cod sursa(job #1730385)
Utilizator | Sergiu xSlive | Data | 16 iulie 2016 20:59:24 |
---|---|---|---|
Problema | Stramosi | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <iostream>
#define NMAX 250010
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
vector<int> stramosi[NMAX];
int main()
{
int j,p,q,n,m,v[NMAX];
f >> n >> m;
for(int i=1;i<=n;i++)
f >> v[i];
for(int i=1;i<=n;i++){
for(j=i;j;j=v[j])
stramosi[i].push_back(j);
stramosi[i].push_back(0);
}
for(int i=1;i<=m;i++){
f >> p >> q;
int col = min(q,((int)stramosi[p].size())-1);
g << stramosi[p][col] << "\n";
}
return 0;
}