日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网--19校招--获得最多的奖金

發(fā)布時(shí)間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网--19校招--获得最多的奖金 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

小明在越南旅游,參加了當(dāng)?shù)氐膴蕵坊顒?dòng)。小明運(yùn)氣很好,拿到了大獎(jiǎng), 到了最后的拿獎(jiǎng)金環(huán)節(jié)。小明發(fā)現(xiàn)桌子上放著一列紅包,每個(gè)紅包上寫著獎(jiǎng)金數(shù)額。

現(xiàn)在主持人給要求小明在這一列紅包之間“切”2刀,將這一列紅包“切”成3組,并且第一組的獎(jiǎng)金之和等于最后一組獎(jiǎng)金和(允許任意一組的紅包集合是空)。最終第一組紅包的獎(jiǎng)金之和就是小明能拿到的總獎(jiǎng)金。小明想知道最多能拿到的獎(jiǎng)金是多少,你能幫他算算嗎。

?

舉例解釋:桌子上放了紅包? 1, 2, 3, 4, 7, 10。小明在“4,7”之間、“7,10” 之間各切一刀,將紅包分成3組 [1, 2, 3, 4]? ?[7]? ?[10],其中第一組獎(jiǎng)金之和=第三組獎(jiǎng)金之和=10,所以小明可以拿到10越南盾。

輸入描述:

第一行包含一個(gè)正整數(shù)n,(1<=n<= 200 000),表示有多少個(gè)紅包。第二行包含n個(gè)正整數(shù)d[i],表示每個(gè)紅包包含的獎(jiǎng)金數(shù)額。其中1<= d[i] <= 1000 000 000

輸出描述:

小明可以拿到的總獎(jiǎng)金

示例1

輸入

復(fù)制

5 1 3 1 1 4

輸出

復(fù)制

5

說明

[1,3,1] [ ] [1,4] ,其中第一組獎(jiǎng)金和是5,等于第三組獎(jiǎng)金和。所以小明可以拿到5越南盾

示例2

輸入

復(fù)制

5 1 3 2 1 4

輸出

復(fù)制

4

說明

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

示例3

輸入

復(fù)制

3 4 1 2

輸出

復(fù)制

0

說明

[ ] [4, 1, 2] [ ] ,小明沒辦法,為了保證第一組第三組相等,只能都分成空的。所以小明只能拿到0越南盾。

設(shè)置兩個(gè)標(biāo)志,Low,High,分別從前向后,從后向前遍歷,如果前面的紅包值和大時(shí),后面的向前移動(dòng)一位,加上之后繼續(xù)比較。如果后面的紅包值和大時(shí),前面的向后移動(dòng)一位,加上之后繼續(xù)比較。

如果前后當(dāng)前值相等,記錄下這個(gè)值,前后同時(shí)向中間動(dòng)一位,觀察是否還存在相等的情況下更大的紅包值

本題有一組數(shù)據(jù)很大,int無法存儲(chǔ),需用long類型或long long類型

#include<stdio.h>
int main()
{
?? ?long long n,Low=0,High,sum1=0,sum2=0,t=0;
?? ?scanf("%lld",&n);
?? ?High=n-1;
?? ?long long a[n],i;
?? ?for(i=0;i<n;i++)
?? ?{
?? ??? ?scanf("%lld",&a[i]);
?? ?}
?? ?sum1=a[Low];
?? ?sum2=a[High];
?? ?while(High>=Low)
?? ?{
?? ??? ?if(sum1>sum2)
?? ??? ?{
?? ??? ??? ?High--;
?? ??? ??? ?sum2+=a[High];
?? ??? ?}
?? ??? ?else if(sum1<sum2)
?? ??? ?{
?? ??? ??? ?Low++;
?? ??? ??? ?sum1+=a[Low];
?? ??? ?}
?? ??? ?else if(sum1==sum2)
?? ??? ?{
?? ??? ??? ?t=sum1;
?? ??? ??? ?Low++;
?? ??? ??? ?High--;
?? ??? ??? ?sum1+=a[Low];
?? ??? ??? ?sum2+=a[High];
?? ??? ?}
?? ?}
?? ?printf("%lld\n",t);
}?

總結(jié)

以上是生活随笔為你收集整理的牛客网--19校招--获得最多的奖金的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。