比赛 20101117 评测结果 WWWWWWWWWA
题目名称 教官 最终得分 10
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-11-17 08:55:27
显示代码纯文本
#include<cstdio>
using namespace std;
bool pan[10001];
long long h[10001],a[10001];
int temp;

int gongyue(long long a,long long b)
{
	long long t;
	while(a%b!=0)
	{
		t=a%b;
		a=b;
		b=t;
	}
	return b;
}

void dfs(int end,int i,int ci)
{
	if(i==end)
	{
		temp=ci;
		return;
	}
	pan[i]=true;
	ci++;
	dfs(end,a[i],ci);
}

int main()
{
	freopen("officer.in","r",stdin);
	freopen("officer.out","w",stdout);
	int n,i,j=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	for(i=1;i<=n;i++)
		if(!pan[i])
		{
			pan[i]=true;
			dfs(i,a[i],1);
			j++;
			h[j]=temp;
		}
	long long t;
	t=gongyue(h[2],h[1]);
	for(i=3;i<=j;i++)
		t=gongyue(h[i],t);
	if(j!=1)
	{
	    t=h[1]/t;
	    for(i=2;i<=j;i++)
		    t=h[i]*t;
	}
	printf("%lld",t);
	return 0;
}