Informatica Online Judge

  채점 [1836 / 072C]

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


The Champion of this Problem (C++) : icp1481 - 179ms / 655byte
My Best Submission (C++) : N/A

[KOI 2008 고등전국본선]

Background

N개의 문항이 있는 답안지를 채점하고자 한다. 1번부터 N번까지 각 문항에 대한 배점이 각각 S1, S2, ..., SN일 경우, 문항별 점수와 답안지의 총점은 다음과 같이 결정된다.

1. 틀린 문항에 대한 점수는 0이다.

2. 1번 문항이 맞으면 이 문항의 점수는 S1이다. i(2≤i≤N)번 문항의 답이 맞을 경우에는 (i-1)번 문항의 정답 여부에 따라 이 문항의 점수가 다르게 정해진다.

a) (i-1)번 문항의 답도 맞으면 i번 문항의 점수는 Si에 (i-1)번 문항의 점수를 더한 값이 된다.

b) (i-1)번 문항의 답이 틀리면 i번 문항의 점수는 Si이다.

3. 답안지의 총점은 위와 같이 계산된 문항별 점수의 합이다.

예를 들어 9개 문항이 있는 시험에서 문항별 배점이 <표 1>과 같다고 하자.

<표1>
문항번호 1 2 3 4 5 6 7 8 9
문항배점 3 2 7 2 6 8 2 5 2


어떤 답안지에서 문항 1번부터 9번까지에 대하여 제출한 답이 맞는지(○) 혹은 틀린지(×)가 아래 <표 2>와 같다고 하자.

<표2>
문항번호 1 2 3 4 5 6 7 8 9
정답여부 O X O O O X X O X


그러면 문항별 점수는 다음 <표 3>과 같으므로 답안지의 총점은 39점이 된다.

<표3>
문항번호 1 2 3 4 5 6 7 8 9
문항점수 3 0 7 9 15 0 0 5 0


그러나 어떤 수는 결코 답안지의 총점으로 나올 수 없다. 예를 들어, 문항별 배점이 <표 1>과 같을 때, 각 문항에 대하여 어떤 답을 하더라도 73점의 총점을 받을 수는 없다.

문항별 배점과 어떤 자연수 K가 입력으로 주어진다. K보다 크거나 같은 정수로서 총점으로 나올 수 없는 가장 작은 값 M을 구하는 프로그램을 작성하시오.

Input

첫째 줄에 전체 문항 수 N(1≤N≤150)이 주어진다.

다음 줄에는 N개 문항들의 배점이 빈칸을 사이에 두고 차례대로 주어진다.

문항별 배점은 1 이상 100 이하의 정수이다. 마지막 줄에 자연수 K(1≤K≤2,000,000,000)가 주어진다.

Output

답안지의 총점으로 나올 수 없는 가장 작은 정수 M(M≥K)을 첫째 줄에 출력한다.

IO Example

입력
9
3 2 7 2 6 8 2 5 2
72

출력
73

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