c++编程题 甜甜圈大作战

题目名称: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;
}

后来做完题后,又想了一下,感觉就是道水题...

由于作者是第一次发博客,各方面可能有不足的地方,欢迎在评论区提建议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值