
1.簡(jiǎn)述:
小明在越南旅游,參加了當(dāng)?shù)氐膴蕵?lè)活動(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越南盾。
數(shù)據(jù)范圍:紅包數(shù)量滿足,紅包金額滿足
第一行包含一個(gè)正整數(shù)n,表示有多少個(gè)紅包。第二行包含n個(gè)正整數(shù)d[i],表示每個(gè)紅包包含的獎(jiǎng)金數(shù)額。
小明可以拿到的總獎(jiǎng)金
輸入:
51 3 1 1 4
輸出:
5
說(shuō)明:
[1,3,1] [ ] [1,4] ,其中第一組獎(jiǎng)金和是5,等于第三組獎(jiǎng)金和。所以小明可以拿到5越南盾
輸入:
51 3 2 1 4
輸出:
4
說(shuō)明:
[1,3] [2,1] [4],小明可以拿到4越南盾
輸入:
34 1 2
輸出:
0
說(shuō)明:
[ ] [4, 1, 2] [ ] ,小明沒(méi)辦法,為了保證第一組第三組相等,只能都分成空的。所以小明只能拿到0越南盾。
2.代碼實(shí)現(xiàn):
import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for(int i=0;i=l){ if(lnum rnum){ rnum+=arr[--r]; }else{ ans = lnum; lnum+=arr[++l]; rnum+=arr[--r]; } } System.out.println(ans); }}
標(biāo)簽: 娛樂(lè)活動(dòng)