atcoder#ABC274D. [ABC274D] Robot Arms 2

[ABC274D] Robot Arms 2

配点 : 400400

問題文

長さ NN の正整数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N) および整数 x,yx, y が与えられます。 次の条件をすべて満たすように、xyxy 座標平面上に N+1N+1 個の点 p1,p2,,pN,pN+1p_1, p_2, \dots, p_N, p_{N+1} を配置することができるか判定してください。(同じ座標に 22 個以上の点を配置してもよいです。)

  • p1=(0,0)p_1 = (0, 0)
  • p2=(A1,0)p_2 = (A_1, 0)
  • pN+1=(x,y)p_{N+1} = (x, y)
  • pip_i と点 pi+1p_{i+1} の距離は AiA_i (1iN1 \leq i \leq N)
  • 線分 pipi+1p_i p_{i+1} と線分 pi+1pi+2p_{i+1} p_{i+2} のなす角は 9090 度 (1iN11 \leq i \leq N - 1)

制約

  • 2N1032 \leq N \leq 10^3
  • 1Ai101 \leq A_i \leq 10
  • x,y104|x|, |y| \leq 10^4
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN xx yy

A1A_1 A2A_2 \dots ANA_N

出力

問題文の条件をすべて満たすように p1,p2,,pN,pN+1p_1, p_2, \dots, p_N, p_{N+1} を配置することができる場合は Yes を、そうでない場合は No を出力せよ。

3 -1 1
2 1 3
Yes

xyxy 座標平面に $p_1 = (0, 0), p_2 = (2, 0), p_3 = (2, 1), p_4 = (-1, 1)$ として点を配置したのが以下の図です。これは問題文の条件をすべて満たしています。

5 2 0
2 2 2 2 2
Yes

$p_1 = (0, 0), p_2 = (2, 0), p_3 = (2, 2), p_4 = (0, 2), p_5 = (0, 0), p_6 = (2, 0)$ とすれば問題文の条件をすべて満たすことができます。同じ座標に複数の点を置いてもよいのに注意してください。

4 5 5
1 2 3 4
No
3 2 7
2 7 4
No
10 8 -7
6 10 4 1 5 9 8 6 5 1
Yes