Pagini recente » Cod sursa (job #316617) | Cod sursa (job #2882351) | Cod sursa (job #2347813) | Cod sursa (job #3260920) | Cod sursa (job #2159512)
#include <fstream>
using namespace std;
ifstream in ("stramosi.in");
ofstream out ("stramosi.out");
const int N = 250005;
int str[N][20], n, m;
int main()
{
in >> n >> m;
int i, j;
for(i = 1; i <= n; i++)
in >> str[i][0];
for(j = 1; (1<<j) < n; j++)
for(i = 1; i <= n; i++)
str[i][j] = str[str[i][j-1]][j-1];
int p, q, put;
for(i = 1; i <= m; i++)
{
in >> p >> q;
put = 18;
while(put >= 0)
{
if((1<<put) <= q)
{
q -= (1<<put);
p = str[p][put];
}
put--;
}
out<<p<<"\n";
}
return 0;
}