ABC 블록 배열
면접 대비시간 제한2초메모리 제한1024 MB
A가 a개, B가 b개, C가 c개인 문자열 중 인접한 두 글자가 같지 않은 것의 개수를 10^9 + 7로 나눈 나머지를 구합니다.
문제
UCF는 유치원을 운영하기 시작했고, 원생 모두에게 ABC를 가르치고 있다. 아이들이 가지고 노는 블록에는 A, B, C 중 하나의 글자가 적혀 있다. 아이들은 블록을 늘어놓는 것을 좋아하지만, 같은 글자가 바로 옆에 붙어 있는 배열은 싫어한다.
예를 들어 A 블록 2개, B 블록 3개, C 블록 1개가 있다면 BACBAB는 유효한 배열이다. CBABBA는 B가 연달아 두 번 나오므로 유효하지 않다.
선생님은 블록을 유효한 순서로 배열하는 방법이 몇 가지인지 알고 싶어 한다. 두 배열에서 같은 위치의 글자가 하나라도 다르면 서로 다른 배열로 본다.
입력
한 줄에 정수 , , 가 주어진다 (, , ). 각각 A, B, C 글자가 적힌 블록의 개수이다.
출력
모든 블록을 한 줄로 배열하되 바로 옆에 같은 글자가 오지 않는 배열의 수를 로 나눈 나머지로 출력한다.