Informatica Online Judge

  유산분배 #1 [2250 / 08CA]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 8   Total Tried : 9


The Champion of this Problem (C++) : gs17076 - 0ms / 935byte
My Best Submission (C++) : N/A

[35th 이경렬]
Writer ID : [gs17076]

Background

GSHS산업 회장 경렬이가 세상을 떠났다.

경렬이의 두 아들 민제와 선우는 아버지의 막대한 주식을 물려받게 될 것이다.

그런데 경렬이는 민제와 선우가 주식을 정확히 같은 가치로 나누어 갖기를 원했다.

경렬이는 만약 두 아들이 주식을 같은 가치로 나누어 갖지 않는다면 모든 재산을 사회에 환원하겠다고 유서에 밝혔다.

그래서 돈이 갖고 싶던 민제와 선우는 어쩔 수 없이 주식을 공평하게 나누기로 했다. 다행히 아버지가 돌아가신 날 아버지의 주식은 총 2^n종류였으며, 각 주식의 가치는 0, 1, 2, ... , 2^n-1이었기 때문에 둘은 쉽게 나눌 수 있었다.

그런데 민제와 선우가 잠깐 여유를 부린 사이 다음날이 되어 주식의 가격이 요동쳤다.

전날 x원이었던 주식이 f(x)원이 된 것이다.

두 사람은 이 날 공평하게 주식을 나눌 수 있을까?

Input

첫 줄에는 자연수 n과 다항식의 차수 k가 입력된다.

두 번째 줄에는 f(x)에서 x^k의 계수, x^(k-1)의 계수, ... , x의 계수, 상수항이 차례로 입력된다.
계수와 상수항은 모두 정수이다.

Sub-Task Info

#1: 1<=n<=6, 0<=k<=3

(계수의 절댓값은 10^4 이하, f(x)의 절댓값의 합 M은 max(1000000, 10^n) 이하이다.)

Output

민제와 선우가 이 날 공평하게 주식을 나눌 수 있으면 Yes, 나눌 수 없으면 No를 출력한다.

첫 줄에 Yes를 출력했을 경우 다음 줄에 공평하게 주식을 나누는 가짓수를 출력한다.(단, 사람은 구분하지 않는다.)

그러나 n>=7인 경우 답이 매우 커질 수 있기 때문에 가짓수를 출력하지 않는다.

IO Example

입력1
2 1
2 1

출력1
Yes
1


입력2
2 2
2 2 2

출력2
No

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]