Pagini recente » Cod sursa (job #1315793) | Cod sursa (job #2608735) | Cod sursa (job #59777) | Cod sursa (job #2245272) | Cod sursa (job #312308)
Cod sursa(job #312308)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MAXP 18
int n,m;
int q,p;
int stram[250001][MAXP];
int pows[MAXP];
vector<char> bufferin(1024 * 1024);
vector<char> bufferout(1024 * 1024);
int main() {
ifstream fin;
fin.rdbuf()->pubsetbuf(&bufferin[0],bufferin.size());
fin.open("stramosi.in");
ofstream fout;
fout.rdbuf()->pubsetbuf(&bufferout[0],bufferout.size());
fout.open("stramosi.out");
fin>>n>>m;
pows[0]=1;
for (int i=1;i<MAXP;i++)
pows[i]=pows[i-1]*2;
for (int i=1;i<=n;i++)
fin>>stram[i][0];
stram[0][0]=0;
/*for (int i=1;i<MAXP;i++) {
for (int j=0;j<=n;j++) {
stram[j][i]=stram[stram[j][i-1]][i-1];
}
}*/
for (int i=0;i<m;i++) {
fin>>q>>p;
/*for (int pi = MAXP -1;pi>=0;pi--) {
if (p>=pows[pi]) {
p-=pows[pi];
q=stram[q][pi];
}
}*/
fout<<q<<endl;
}
fin.close();
fout.close();
return 0;
}