题目名称:6.甜甜圈大作战
时间限制:1000ms内存限制:256MB提交通过率:38%
题目描述
描述
最近榛果蛋糕房进行年底大促销,小明和玲玲打算凑钱买一盒巧克力甜甜圈,已知每盒含有n个重量不一的甜甜圈,编号从1到n。在如何分配甜甜圈时,小明提出了一种分配方案:若存在某个特殊的甜甜圈,其左侧甜甜圈的总重量恰好是右侧的2倍,所有的甜甜圈就归小明,否则就归玲玲。
输入
第一行一个整数n,代表甜甜圈个数;(1 <= n <= 100,000)
第二行n个整数,表示n个甜甜圈的重量,单位g。(1 <= w <= 1,000,000)
输出
一行一个整数,若存在某个特殊的甜甜圈,则输出对应编号;若不存在则输出-1。
样例1
输入复制
5 102 114 110 89 163
输出
4
样例2
输入复制
10 117 102 113 76 54 178 289 92 132 199
输出
-1
一开始我看到这道题时确实蒙了一下,后来老师给了点提示,就想出了点头绪,解了出来,不多说了,上代码!
#include <bits/stdc++.h>
int sum[100005];
int main(){
int n, w, x = -1;
scanf("%d", &n);
for(int i = 1; i <= n; i++){
scanf("%d", &w);
sum[i] = sum[i - 1] + w;
}
for(int i = 1; i <= n; i++){
if(sum[i - 1] == sum[n]* 2-sum[i]*2){
x = i;
break;
}
}
if(x == -1){
printf("-1");
}else{
printf("%d", x);
}
return 0;
}
后来做完题后,又想了一下,感觉就是道水题...
由于作者是第一次发博客,各方面可能有不足的地方,欢迎在评论区提建议。