아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

1학년

면접 대비

시간 제한1초메모리 제한128 MB

요약
앞의 N-1개 숫자 사이에 + 또는 -를 넣고 마지막 숫자 앞에 =를 넣어, 왼쪽부터 계산한 중간값이 항상 0 이상 20 이하이고 전체 값이 마지막 숫자와 같은 식의 개수를 센다.
난이도

보통10점 중 6점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

상근이는 덧셈과 뺄셈을 좋아합니다. 숫자가 한 줄로 나열되어 있으면, 마지막 두 숫자 사이에는 =을, 나머지 인접한 숫자 사이에는 + 또는 -를 넣어 하나의 등식을 만듭니다. 예를 들어 숫자열 8 3 2 4 8 7 2 4 0 8 8로는 8+3-2-4+8-7-2-4-0+8=8과 같은 등식을 만들 수 있습니다.

상근이는 올바른 등식만 만들려고 합니다. 상근이는 아직 음수를 배우지 않았고 20보다 큰 수도 다루지 못합니다. 따라서 등식의 왼쪽 부분을 맨 앞에서부터 차례대로 계산할 때, 계산 도중에 나타나는 모든 중간 값이 항상 00 이상 2020 이하이어야 합니다. 예를 들어 8+3+2-4-8-7+2+4+0+8=8은 수식 자체로는 성립하지만, 왼쪽부터 계산하면 8+3+2-4-8-7에서 값이 음수가 되므로 상근이가 만들 수 없는 등식입니다.

숫자열이 주어졌을 때, 상근이가 만들 수 있는 올바른 등식의 개수를 구하는 프로그램을 작성하세요.

입력

첫째 줄에 숫자의 개수 NN이 주어집니다. (3≤N≤1003 \le N \le 100) 둘째 줄에는 00 이상 99 이하의 정수 NN개가 공백으로 구분되어 주어집니다.

출력

상근이가 만들 수 있는 올바른 등식의 개수를 첫째 줄에 출력합니다. 이 값은 항상 263−12^{63}-1 이하입니다.

힌트

숫자열 8 3 2 4 8 7 2 4 0 8 8의 경우, 다음과 같이 10가지 등식을 만들 수 있습니다.

  • 8+3-2-4+8-7-2-4-0+8=8
  • 8+3-2-4+8-7-2-4+0+8=8
  • 8+3+2+4-8-7+2-4-0+8=8
  • 8+3+2+4-8-7+2-4+0+8=8
  • 8+3+2-4+8-7+2+4-0-8=8
  • 8+3+2-4+8-7+2+4+0-8=8
  • 8-3+2+4-8+7+2+4-0-8=8
  • 8-3+2+4-8+7+2+4+0-8=8
  • 8-3+2-4+8+7+2-4-0-8=8
  • 8-3+2-4+8+7+2-4+0-8=8

예제2

  1. 예제 1

    입력
    11
    8 3 2 4 8 7 2 4 0 8 8
    
    예상 출력
    10
    
  2. 예제 2

    입력
    40
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
    
    예상 출력
    7069052760