Pagini recente » Cod sursa (job #370514) | Cod sursa (job #1602881) | Cod sursa (job #1942525) | Cod sursa (job #538128) | Cod sursa (job #3041158)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
int dp[25001][20];
int n,m;
int main()
{
f >> n >> m;
for(int i= 1; i<=n; i++)
{
f >> dp[i][0];
}
for(int put = 1; (1<<put)<=n; put++)
{
for(int i = 1;i<=n;i++)
{
dp[i][put] = dp[dp[i][put-1]][put-1];
}
}
for(int i = 1; i<=m; i++)
{
int st,nr;
f >> st >> nr;
for(int put = 20; put>=0; put--)
{
if(nr>=(1<<put))
{
nr-=(1<<put);
st = dp[st][put];
}
}
g << st<<'\n';
}
}