Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 44 - A game

Problem Statistics

Solved Member: 40  Submission: 112  User Tried: 45

Statement:

這是一個兩個人玩的遊戲,遊戲盤上放有一排正整數。

兩位玩家輪流玩。當輪到時,玩家就從這一排數字的最左端或最右端的二個數字中選擇一個。被選到的數字就從遊戲盤上除去。當所有數字都被選取除去後,遊戲就結束。如果第一個遊戲者所選取的數字總和跟第二位遊戲者所選取的數字總和一樣大或更大時,則第一個遊戲者就贏得勝利。

二位遊戲者一定做全局考量最好的選擇。

此遊戲由第一位遊戲者開始先選取。

假如此遊戲盤上一開始就有偶數個數字,則第一位遊戲者一定有一個必勝的策略,你要寫出策略的程式,好讓第一位遊戲者勝利。

請寫一個程式來計算第一位玩家(先拿者)的分數,以及第二位玩家的分數。

Input:Output:

第一行包含這個遊戲大小的起始值N,N是偶數且2<=N<=1000,接下來的N行中,每一行都有一個數字,代表著遊戲盤上的數字,排列次序為由左至右,每一個數字最大為10000。
輸出檔的第一行應有兩個數字,第一個數字是第一個遊戲者所選取的數字的總和,而第二個數字是第二位遊戲者所選取的數字的總和。

Sample Input:Sample Output:

6
4 7 2 9 5 2
18 11

HINT:

40%測資滿足:
2<=N<=100
每一個數字最大為200

Source:

IOI 1996

Problem Setter

Testdata:

TestTimeMemoryScore
01000ms65536kb
1-11000ms65536kb10
1-21000ms65536kb
1-31000ms65536kb
1-41000ms65536kb
2-11000ms65536kb10
2-21000ms65536kb
2-31000ms65536kb
2-41000ms65536kb
3-11000ms65536kb10
3-21000ms65536kb
3-31000ms65536kb
3-41000ms65536kb
4-11000ms65536kb10
4-21000ms65536kb
4-31000ms65536kb
4-41000ms65536kb
5-11000ms65536kb10
5-21000ms65536kb
6-11000ms65536kb10
6-21000ms65536kb
7-11000ms65536kb10
7-21000ms65536kb
8-11000ms65536kb10
8-21000ms65536kb
9-11000ms65536kb10
9-21000ms65536kb
10-11000ms65536kb10
10-21000ms65536kb