만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

ABC 블록 배열

면접 대비

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

요약
A가 a개, B가 b개, C가 c개인 문자열 중 인접한 두 글자가 같지 않은 것의 개수를 10^9 + 7로 나눈 나머지를 구합니다.
난이도

보통10점 중 5점

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

문제

UCF는 유치원을 운영하기 시작했고, 원생 모두에게 ABC를 가르치고 있다. 아이들이 가지고 노는 블록에는 A, B, C 중 하나의 글자가 적혀 있다. 아이들은 블록을 늘어놓는 것을 좋아하지만, 같은 글자가 바로 옆에 붙어 있는 배열은 싫어한다.

예를 들어 A 블록 2개, B 블록 3개, C 블록 1개가 있다면 BACBAB는 유효한 배열이다. CBABBA는 B가 연달아 두 번 나오므로 유효하지 않다.

선생님은 블록을 유효한 순서로 배열하는 방법이 몇 가지인지 알고 싶어 한다. 두 배열에서 같은 위치의 글자가 하나라도 다르면 서로 다른 배열로 본다.

입력

한 줄에 정수 aa, bb, cc가 주어진다 (1≤a≤1001 \le a \le 100, 1≤b≤1001 \le b \le 100, 1≤c≤1001 \le c \le 100). 각각 A, B, C 글자가 적힌 블록의 개수이다.

출력

모든 블록을 한 줄로 배열하되 바로 옆에 같은 글자가 오지 않는 배열의 수를 109+710^9 + 7로 나눈 나머지로 출력한다.

예제2

  1. 예제 1

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

    입력
    15 2 7
    
    예상 출력
    0