Pagini recente » Cod sursa (job #84938) | Cod sursa (job #1050914) | Cod sursa (job #2009251) | Cod sursa (job #145318) | Cod sursa (job #1293881)
#include <iostream>
#include <fstream>
using namespace std;
int find() {
return 0;
}
int main() {
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,m;
in>>n>>m;
int stramosi[100], ancest[100][100], increment[100];
bool ansoa[100];
for(int i = 1; i <= n; i++) {
in >> stramosi[i];
ancest[i][1] = stramosi[i];
if(stramosi[i] == 0)
ansoa[i] = true;
increment[i]++;
}
bool x = false,c;
while(!x) {
c = false;
for(int i =1; i<=n; i++) {
if(!ansoa[i]){
c = true;
for(int j=1; j<= increment[stramosi[i]]; j++) {
ancest[i][j+1] = ancest[stramosi[i]][j];
increment[i]++;
}
if(ansoa[stramosi[i]])
ansoa[i] = true;
}
}
if(!c)
x = true;
}
// for(int i =1; i<=n; i++) {
// for(int j=1;j<=n; j++) {
// cout<<ancest[i][j]<<" ";
// }
// cout<<endl;
// }
int p,q;
for(int i = 1; i<= m; i++) {
in >> p >> q;
out<<ancest[p][q]<<endl;
}
in.close();
out.close();
return 0;
}