比赛 20160407 评测结果 AAAAAAAATA
题目名称 吊灯 最终得分 90
用户昵称 农场主 运行时间 4.400 s
代码语言 C++ 内存使用 23.18 MiB
提交时间 2016-04-07 11:26:17
显示代码纯文本
#include<cstdio>
#include<cstring>
using  namespace std;
int n,size[2000000]={0},cnt[2000000]={0},sum,fa[2000000]={0};
int main(){
	freopen("dividec.in","r",stdin);
	freopen("dividec.out","w",stdout);
	scanf("%d",&n);
	for (int i=2;i<=n;i++){
		scanf("%d,",&fa[i]);
	}
	for (int k=1;k<=10;k++){
		printf("Case #%d:\n",k); sum=0;
		memset(cnt,0,sizeof(cnt));
		memset(size,0,sizeof(size));
		for (int j=n;j>0;j--){
			size[j]++;
			size[fa[j]]+=size[j];
			cnt[size[j]]++;
		}
		for (int i=1;i<=n;i++) if (n%i==0) {
			sum=0;
			for (int j=i;j<=n;j+=i){
				sum+=cnt[j];
				if (sum==n/i) {
					printf("%d\n",i);
					break;
				}
			}
		}
		for (int i=2;i<=n;i++) fa[i]=(fa[i]+19940105)%(i-1)+1;
	}
	return 0;
}