Cod sursa(job #3150892)
| Utilizator | Data | 18 septembrie 2023 22:07:57 | |
|---|---|---|---|
| Problema | A+B | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#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;
}