Pagini recente » Cod sursa (job #1113747) | Cod sursa (job #2451207) | Cod sursa (job #2886138) | Cod sursa (job #24106) | Cod sursa (job #1049109)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
#define max 250010
int v[20][max];
int str(int nod, int poz)
{
int maxi=17;
while(poz>0)
{
if((1<<maxi)<=poz)
{
nod=v[maxi][nod];
poz=poz-(1<<maxi);
}
maxi--;
}
return nod;
}
int main()
{
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m,i,j,p,q;
f>>n>>m;
for(i=1;i<=n;i++)
f>>v[0][i];
i=1;
while((1<<i)<=n)
{
for(j=1;j<=n;j++)
v[i][j]=v[i-1][v[i-1][j]];
i++;
}
for(i=1;i<=m;i++)
{
f>>p>>q;
g<<str(p,q)<<'\n';
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
g<<v[i][j]<<" ";
g<<endl;
}
f.close();
g.close();
return 0;
}