1. paizaラーニングトップ
  2. レベルアップ問題集
  3. ゲーム・確率DPメニュー(言語選択)
  4. 問題一覧 R(Beta)編
  5. (問題 1) イチゴ争奪戦 step.1 R(Beta)編

ゲーム・確率DPメニューのサムネイル
(問題 1) イチゴ争奪戦 step.1 R(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

ここではゲーム・確率DPについて、学習していきます。

まずはじめに、以下の問題を見てみましょう。

問題

N 個のセグメントに分かれた 1 次元のケーキがあり、i (1 ≦ i ≦ N) 番目のセグメントには A_i 個のイチゴが載っています。これらのセグメントの中から切れ目を 1 つ選び、2 つのケーキに分けます。2 つのケーキに乗っているイチゴの数の差の最小値を求めてください。

(制約) 2 ≦ N ≦ 1000, 1 ≦ A_i ≦ 10 ^ 9 (1 ≦ i ≦ N)


この問題を解いてみましょう。切れ目は全部で N - 1 個しかないので全部試しに切ってみることを考えます。

ここで、例として、7 個のセグメントに左からイチゴが、8 個、12 個、13 個、7 個、2 個、17 個、6 個載っている状況を考えます。このケーキを 4 番目のセグメントと 5 番目のセグメントで切ってみると以下のようになります。



左側のケーキは 8 + 12 + 13 + 7 = 40 個、右側のケーキは 2 + 17 + 6 = 25 個イチゴが載っているので、差は |40 - 25| = 15 個と計算が出来ます。

このように、それぞれのケーキに載っているイチゴの数は足し算で計算が出来ることがわかりました。では、実際にやってみましょう。以下に問題を再掲します。

(問題)



N 個のセグメントに分かれた 1 次元のケーキがあり、i (1 ≦ i ≦ N) 番目のセグメントには A_i 個のイチゴが載っています。これらのセグメントの中から切れ目を 1 つ選び、2 つのケーキに分けます。2 つのケーキに乗っているイチゴの数の差の最小値を求めてください。

入力される値

入力は以下のフォーマットで与えられます。


N
A_1 A_2 ... A_N


1 行目には 1 つの整数 N が与えられます。
2 行目には N 個の整数 A_1,A_2,...,A_N が与えられます。
入力は合計で 2 行からなり、入力値最終行の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

答えを 1 行で出力してください。
最後は改行し、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。


  • 2 ≦ N ≦ 1000

  • 1 ≦ A_i ≦ 10 ^ 9 (1 ≦ i ≦ N)

入力例1

7
8 12 13 7 2 17 6

出力例1

1

入力例2

5
1 1 1 1 1000

出力例2

996

問題一覧へ戻る

ページの先頭へ戻る