51Nod 1414 冰雕
2016-12-14 19:52
211 查看
白兰大学正在准备庆祝成立256周年。特别任命副校长来准备校园的装扮。
校园的中心竖立着n个冰雕。这些雕像被排在一个等分圆上,因此他们形成了一个正n多边形。这些冰雕被顺针地从1到n编号。每一个雕有一个吸引力t[i].
校长来看了之后表示不满意,他想再去掉几个雕像,但是剩下的雕像必须满足以下条件:
· 剩下的雕像必须形成一个正多边形(点数必须在3到n之间,inclusive),
· 剩下的雕像的吸引力之和要最大化。
请写一个程序帮助校长来计算出最大的吸引力之和。如果不能满足上述要求,所有雕像不能被移除。
Input
Output
Input示例
Output示例
校园的中心竖立着n个冰雕。这些雕像被排在一个等分圆上,因此他们形成了一个正n多边形。这些冰雕被顺针地从1到n编号。每一个雕有一个吸引力t[i].
校长来看了之后表示不满意,他想再去掉几个雕像,但是剩下的雕像必须满足以下条件:
· 剩下的雕像必须形成一个正多边形(点数必须在3到n之间,inclusive),
· 剩下的雕像的吸引力之和要最大化。
请写一个程序帮助校长来计算出最大的吸引力之和。如果不能满足上述要求,所有雕像不能被移除。
Input
单组测试数据。 第一行输入一个整数n(3≤n≤20000),表示初始的冰雕数目。 第二行有n个整数t[1],t[2],t[3],…,t ,表示每一个冰雕的吸引力(-1000≤t[i]≤1000),两个整数之间用空格分开。
Output
输出答案占一行。
Input示例
8 1 2 -3 4 -5 5 2 3 6 1 -2 3 -4 5 -6
Output示例
14 9
#include <stdio.h> #define MAXN 20005 int a[MAXN]; int main() { int n; while(scanf("%d",&n) != EOF) { for(int i=0; i<n; i++) scanf("%d",&a[i]); int max = -99999999; for(int i=1; i<=n/3; i++) { if(n%i == 0) { for(int j=0; j<i; j++) { int sum = 0; for(int k=j; k<n; k+=i) sum += a[k]; if(sum > max) max = sum; } } } printf("%d\n",max); } return 0; }
相关文章推荐
- 51nod 1414 冰雕
- 51Nod 1414 冰雕 (暴力模拟)
- 51nod 1414 冰雕【思维+暴力】
- 51NOD-1414 冰雕
- 51nod 1414 冰雕 (水题)
- 51nod 1414 冰雕 思路:暴力模拟题
- 51nod 1402最大值 1414冰雕 暴力
- 51nod 1414 冰雕(思维+暴力)
- 51nod 1414 冰雕
- 51Nod - 1414 冰雕问题
- 51Nod-1414-冰雕
- 51NOD 1414 冰雕(暴力)
- 51nod 1414 冰雕
- 1414 冰雕 51nod 暴力
- 51NOD 1414 冰雕【水】
- 51Nod - 1414 暴力
- 51Nod-冰雕(暴力)
- 【51NOD-0】1049 最大子段和
- [递推] 51nod 算法马拉松25 B. 完美序列
- 51Nod-1013 3的幂的和【快速模幂+逆元】