Pagini recente » Cod sursa (job #1747703) | Cod sursa (job #431709) | Cod sursa (job #1343264) | Cod sursa (job #80596) | Cod sursa (job #2034816)
#include <bits/stdc++.h>
#define nmax 250005
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
vector<int> G[nmax];
int n,m,d[nmax][19],k=1;
bool ok=1;
int main()
{
int a,b;
fin>>n>>m;
for(int i=1;i<=n;++i){
fin>>a;
G[i].push_back(a);
G[a].push_back(i);
d[i][1]=a;
}
while(ok){
k*=2;
ok=0;
for(int i=1;i<=n;++i)
ok=d[i][k]=d[d[i][k/2]][k/2];
}
/*for(int i=1;i<=m;++i){
fin>>a>>b;
while(b){
int qq=__builtin_ctz(b);
int q=1<<qq;
b-=q;
a=d[a][q];
}
fout<<a<<'\n';
}*/
return 0;
}