比赛 |
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;
}