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

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

사탕 나눠주기

면접 대비

시간 제한2초메모리 제한512 MB

요약
각 K마다 브랜드 1부터 K까지 사탕을 하나씩 고르는 경우의 수를 구해, 모든 K에 대한 합을 출력한다.
난이도

보통10점 중 5점

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

문제

알고리즘 캠프 참가자에게 사탕을 나누어 주려고 한다.

사탕은 모두 NN개이고, 사탕마다 브랜드가 정해져 있다. 브랜드는 정수로 나타낸다.

먼저 사탕을 몇 개 나누어 줄 것인지 KK를 정한다. 그다음 브랜드가 11번부터 KK번까지인 사탕을 브랜드마다 정확히 1개씩 고른다.

KK는 11 이상 NN 이하의 어떤 값이든 될 수 있고, 브랜드가 같은 사탕도 서로 다른 사탕으로 구별한다. 모든 KK에 대해 사탕을 고르는 방법의 수를 합한 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 사탕의 개수 NN이 주어진다. (1≤N≤501 \le N \le 50)

둘째 줄에 사탕 NN개의 브랜드가 공백으로 구분되어 주어진다. 브랜드는 11 이상 5050 이하의 정수다.

출력

첫째 줄에 사탕을 고르는 방법의 수를 출력한다. 이 값은 2312^{31}보다 작다.

예제5

  1. 예제 1

    입력
    3
    1 3 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3
    1 1 2
    
    예상 출력
    4
    
  3. 예제 3

    입력
    8
    1 3 2 5 7 4 5 4
    
    예상 출력
    9
    
  4. 예제 4

    입력
    10
    1 1 2 2 3 3 4 4 5 5
    
    예상 출력
    62
    
  5. 예제 5

    입력
    1
    2
    
    예상 출력
    0