Pagini recente » Istoria paginii utilizator/2amazing4me | Istoria paginii utilizator/matei_barila | Istoria paginii utilizator/andrei.poenaru | Istoria paginii runda/simulare__2 | Cod sursa (job #3150892)
#include <fstream>
using namespace std;
ifstream f("perm2.in");
ofstream g("perm2.out");
int p[100005];
bool viz[100005];
int cmmmc(int a, int b){
int p=a*b;
while(b!=0){
int r=a%b;
a=b;
b=r;
}
return p/a;
}
int main(){
int n;
int sol=1;
f>>n;
for(int i=1; i<=n; i++){
f>>p[i];
}
for(int k=1; k<=n; k++){
int i,len=1;
if(!viz[k]){
i=k;
len=0;
while(!viz[i]){
len++;
viz[i]=true;
i=p[i];
}
}
sol=cmmmc(sol,len);
}
g<<sol;
}