重庆赛区ACM热身赛 8529. Cake
8529. Cake
【问题描述】
小 W 和小 R 同月同日生,今天是他们的生日~
但是只有一个生日蛋糕,切成了 n 块(每块是角度为 ai 的扇形)。
现在他们两人要拿走连续的若干块蛋糕(最终没有蛋糕剩余)。他们想知道怎样分,才能使得两人得到的扇形角度的总和之差最小。
输出两人获得蛋糕总和的最小角度差。(可能出现其中一人分不到任何蛋糕的情况。)
【输入形式】
第一行一个整数 n(1≤n≤360),表示蛋糕切成的扇形块数
第二行 n 个整数 ai(1≤ai≤360),表示每块扇形的角度,保证角度之和为 360 。输入数据是一个环。
【输出形式】
输出一个非负整数,表示小 W 与小 R 获得蛋糕角度之差的最小值。
【样例输入】
3
100 160 100
【样例输出】
40
【样例说明】
红色与黄色部分分别表示小 W 与小 R 分得的蛋糕,小 W 拿第 1、3 块,小 R 拿第 2 块。
看到这么多人发我也发一个(跟风233)
本人题解(C++):
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { 7 int n,cake[360] = {0},man1,sum,min = -1; 8 scanf("%d",&n); 9 for(int i = 0; i < n; i ++) 10 { 11 scanf("%d",&cake[i]); 12 } 13 14 for(int i = 0; i < n; i++) 15 { 16 man1 = cake[i]; 17 for(int j = i + 1; man1 < 180; j++) 18 { 19 man1 += cake[j % n]; 20 } 21 sum = abs(man1-(360 - man1)); 22 if(min == -1 || min > sum) 23 { 24 min = sum; 25 } 26 } 27 28 printf("%d",min); 29 return 0; 30 }
滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~滑稽~