记录编号 22135 评测结果 AAAAAAAAAA
题目名称 教官 最终得分 100
用户昵称 Gravatar郭乾乐 是否通过 通过
代码语言 C++ 运行时间 0.038 s
提交时间 2010-11-17 12:09:10 内存使用 0.42 MiB
显示代码纯文本
#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=h[1]*h[2]/gongyue(h[2],h[1]);
	for(i=3;i<=j;i++)
		t=t*h[i]/gongyue(h[i],t);
	printf("%lld",t);
	return 0;
}