获得最多的奖金

题目描述

小明在越南旅游,参加了当地的娱乐活动。小明运气很好,拿到了大奖, 到了最后的拿奖金环节。小明发现桌子上放着一列红包,每个红包上写着奖金数额。

现在主持人给要求小明在这一列红包之间“切”2刀,将这一列红包“切”成3组,并且第一组的奖金之和等于最后一组奖金和(允许任意一组的红包集合是空)。最终第一组红包的奖金之和就是小明能拿到的总奖金。小明想知道最多能拿到的奖金是多少,你能帮他算算吗。

 

举例解释:桌子上放了红包  1, 2, 3, 4, 7, 10。小明在“4,7”之间、“7,10” 之间各切一刀,将红包分成3组 [1, 2, 3, 4]   [7]   [10],其中第一组奖金之和=第三组奖金之和=10,所以小明可以拿到10越南盾。

输入描述:

第一行包含一个正整数n,(1<=n<= 200 000),表示有多少个红包。

第二行包含n个正整数d[i],表示每个红包包含的奖金数额。其中1<= d[i] <= 1000 000 000

输出描述:

小明可以拿到的总奖金

示例1

输入

复制

5
1 3 1 1 4

输出

复制

5

说明

[1,3,1]  [ ]   [1,4] ,其中第一组奖金和是5,等于第三组奖金和。所以小明可以拿到5越南盾

示例2

输入

复制

5
1 3 2 1 4

输出

复制

4

说明

[1,3]   [2,1]  [4],小明可以拿到4越南盾

示例3

输入

复制

3
4 1 2

输出

复制

0

说明

[ ]  [4, 1, 2] [ ] ,小明没办法,为了保证第一组第三组相等,只能都分成空的。所以小明只能拿到0越南盾。

思路:

从左和从右分别依次计算和,当左和大于右和时,左边多加一个数;当右和大于左和时,右边多加一个数;左和等于右和时记录最大和,直到左边下标标记大于右边下标标记。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        long []a = new long[200500];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        int l = 0;
        int r = n-1;
        long suml = a[0];
        long sumr = a[r];
        long maxsum = 0;
        while (l<=r)
        {
            if(suml==sumr){
                l++;
                r--;
                maxsum = suml;
                suml+=a[l];
                sumr+=a[r];
            }else
            {
                if(suml<sumr){
                    l++;
                    suml+=a[l];
                }else
                {
                    r--;
                    sumr+=a[r];
                }
            }
        }
        System.out.println(maxsum);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
研发项目奖金是指根据员工在研发项目中的表现和贡献,给予的一种激励措施。通过奖金的形式,旨在激发员工的积极性和创造力,促进团队的凝聚力和工作效率。 首先,研发项目奖金可以激励员工的积极性和创造力。在研发项目中,员工需要付出大量的时间和精力,面对挑战不断地进行创新和解决问题。通过给予奖金,可以让员工感受到自己所做出的努力和贡献得到了认可和回报,从而激发他们更加投入和富有激情地投身于项目的研发工作中。 其次,研发项目奖金可以增强团队的凝聚力。研发项目通常由一个团队协作完成,每个团队成员都有自己的分工,但整个团队的目标是共同的。通过给予奖金,既可以表彰个人的贡献,也能够加强团队之间的合作和互信,激发团队成员之间的竞争意识和团队精神,推动整个团队朝着共同的目标努力。 最后,研发项目奖金可以提高工作效率。项目奖金在一定程度上会与工作表现联系在一起,取得较好的项目成果的员工往往能够获得更高额度的奖金。这样一来,员工就会有着更强的动力去积极追求项目目标,提高工作效率和质量,推动项目的顺利进行。 总之,研发项目奖金是一种可以激励员工、增强团队凝聚力和提高工作效率的措施。适当的奖金制度可以激发员工的爱岗敬业精神,激发团队成员的积极性和创造力,推动项目圆满完成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值