Pagini recente » Cod sursa (job #2409181) | Cod sursa (job #2777053) | Cod sursa (job #3036893) | Cod sursa (job #3290491) | Cod sursa (job #3177590)
#include <bits/stdc++.h>
using namespace std;
int cmmmdc(int a, int b);
char v[20001];
int p[20001], n, i, cnt, x, m = 1;
int main()
{
ifstream fin("perm2.in");
ofstream fout("perm2.out");
fin >> n;
for (int i = 1; i<= n; i++)
{
fin >>p[i];
}
for(int i = 1; i <= n; i++)
{
if(v[i] == 0)
{
cnt = 1;
x= p[i];
while( i != x)
{
cnt++;
v[x] = 1;
x = p[x];
}
m = m * cnt / cmmmdc(m, cnt);
}
}
fout << m;
return 0;
}
int cmmmdc(int a, int b)
{
while (b != a)
{
int r = a % b;
a = b;
b = r;
}
return a;
}