JOI 夏季セミナーコンテスト 2020
コンテスト日時
2020/08/27 (Th) 21:00 - 22:30

A - フランスパンの切り分け

Ceylon
2
s
1024
MB
100

問題文

J 君・ O 君・ I 君が,JOI 夏期セミナー開催を祝うパーティーに参加した.パーティーでは $1$ つの大きいフランスパンが食事として出される.フランスパンは以下の図の通りに,$N - 1$ 個の切れ目によって $N$ 個の区間に分かれており,左から $i$ 番目の区間の長さは $A_i$ センチメートルである.

$3$ 人は以下の方法によって,フランスパンを 3 等分したい.

  • まず,$N − 1$ 個の切れ目のうち $2$ 個を選び,これらに沿ってパンを切る.
  • そうすると,フランスパンは $3$ つの区間に分かれる.一番左をJ 君,真ん中を O 君,一番右を I 君の取り分とする.

以下の図は $N = 5$ の場合の切り分け方の例である.

フランスパンの取り分の長さが,$3$ 人ともすべて同じになる切り分け方は存在するか.

制約

  • $1 \leq T \leq 10$ .
  • $3 \leq N \leq 1500$ .
  • $1 \leq A_i \leq 100$ .
  • 入力はすべて整数である.
小課題 得点 内容 入力データ番号 $T$ の値
0 - サンプルテストケース #0 -
1 25 $N = 3$. #1 $5$
2 50 $N \leq 50$. #2 $5$
3 25 追加の制約はない. #3 $10$

入力

各入力データ について,以下の形式で入力が与えられる.

$T$
($1$ 個目のテストケースの情報)
($2$ 個目のテストケースの情報)
$...$
($T$ 個目のテストケースの情報)

各テストケース について,以下の形式で入力が与えられる.

  • $1$ 行目に,整数 $N$ が与えられる.
  • $2$ 行目に,整数 $A_1, A_2, A_3, ..., A_n$ が空白区切りで与えられる.

出力

$T$ 行に渡って出力せよ.
$i$ 行目には,$i$ 個目のテストケースにおける答えを,以下の通りに出力せよ.

  • フランスパンの取り分の長さが $3$ 人ともすべて同じになる切り分け方が存在する場合は,'Yay!' と出力し,そうでない場合は ':(' と出力する.
入力例 1
4 3 1 1 1 3 1 1 2 5 1 4 5 3 2 5 8 6 9 1 20
出力例 1
Yay! :( Yay! :(

この入力データには,$4$ 個のテストケースが存在する.($T = 4$ である.)

$1$ 個目のテストケースに関しては,「左から $1$ 個目と左から $2$ 個目の切れ目を選ぶ」方法でフランスパンを切り分けた場合,$J$ 君・$O$ 君・$I$ 君の全員の取り分が長さ $1$ となり,全て同じになる.したがって,$”\text{Yay!}”$ と出力すれば正解となる.

$2$ 個目のテストケースに関しては,「左から $1$ 個目と左から $2$ 個目の切れ目を選ぶ」方法が唯一の切り分け方であるが,この場合,$J$ 君・$O$ 君・$I$ 君それぞれの取り分の長さが順に $1, 1, 2$ となるため,全て同じにはならない.したがって,$”\text{:(}“$ と出力すれば正解となる.

$3$ 個目のテストケースに関しては,問題文中の図の通りに,「左から $2$ 番目と左から $3$ 番目の切れ目を選ぶ」方法でフランスパンを切り分けた場合,全員の取り分が長さ $5$ となる.

提出
C++23 (g++ 12.2.0)