Pagini recente » Profil Djok | Cod sursa (job #663744) | Cod sursa (job #1709084) | Cod sursa (job #2597866) | Cod sursa (job #2496170)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("perm2.in");
ofstream out ("perm2.out");
int v [100000];
int cmmmc (int a, int b) {
int r, p = a * b;
while (b) {
r = a % b;
a = b;
b = r;
}
return p / a;
}
int ciclu (int p) {
int nr = 0, aux;
while (v [p] != 0) {
aux = p;
p = v [p];
nr ++;
v [aux] = 0;
}
return nr;
}
int main() {
int n, c = 1;
in >> n;
for (int i = 1; i <= n; i ++) {
in >> v [i];
}
for (int i = 1; i <= n; i ++) {
if (v [i] != i && v[i] != 0) {
c = cmmmc (c, ciclu (i));
}
}
out << c;
return 0;
}