Pagini recente » Cod sursa (job #1618302) | Profil usureluflorian | Cod sursa (job #1823744) | Cod sursa (job #2389128) | Cod sursa (job #652284)
Cod sursa(job #652284)
#include<cstdio>
#include<vector>
#define lim 300001
#define pb push_back
using namespace std;
int n,m,q,p,u,i,C[lim],Q,k,x;
vector<int>G[lim];
void cauta(int nod,int k){
bool viz[lim]={0};
viz[nod]=1;
C[1]=nod;
int nr=0;
int nd;
int caut=0;
p=u=1;
while(p<=u && nr<k){
nd=C[p];
for(int i=0;i<G[nd].size();++i)
if(!viz[G[nd][i]]){
C[++u]=G[nd][i];
viz[G[nd][i]]=1;
caut=G[nd][i];
nr++;
}
p++;
}
printf("%d\n",caut);
}
int main (){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
scanf("%d",&x);
G[i].pb(x);
}
for(i=1;i<=m;++i){
scanf("%d%d",&Q,&k);
cauta(Q,k);
}
return 0;
}