돌 가져가기 2
시간 제한2초메모리 제한1024 MB
색칠된 돌을 모든 순서로 N!가지 방법으로 제거할 때, 양쪽 이웃이 다른 색인 돌을 제거하며 얻는 가중치 합을 모두 더해 구한다.
문제
개의 돌이 일렬로 나열되어 있다. 각 돌은 흰색 또는 검은색이다.
돌들을 왼쪽부터 1번 돌, 2번 돌, ..., 번 돌이라 하자. 번째 돌의 무게는 이다.
당신은 나열된 돌들 중 하나를 골라 가져가는 것을 모든 돌이 없어질 때까지 총 번 반복하려고 한다.
돌을 가져갈 때, 만약 그 돌이 현재 나열된 돌 중 가장 왼쪽이나 가장 오른쪽이 아니며, 가져간 돌에 인접한 두 돌 모두 가져간 돌과 다른 색인 경우 당신은 가져간 돌의 무게만큼의 점수를 얻는다.
돌을 가져가는 방법은 순서에 따라 총 가지 서로 다른 방법이 존재한다. 가능한 가지 방법에서 얻을 수 있는 점수의 총합을 구하여라.
입력
첫 줄에 양의 정수 이 주어진다. ()
둘째 줄에 B 또는 W로만 이루어진 길이 의 문자열 가 주어진다.
의 번째 문자 는 왼쪽에서 번째 돌의 색을 나타낸다. B는 돌이 검은색임을, W는 돌이 흰색임을 뜻한다.
셋째 줄에 개의 정수 이 주어진다. ()
는 번 돌의 무게를 나타낸다.
출력
첫째 줄에 가지 방법에서 얻을 수 있는 점수의 총합을 으로 나눈 나머지를 출력한다.
힌트
왼쪽에서 두 번째 돌을 가져가면서 점수를 얻는 방법과 세 번째 돌을 가져가면서 점수를 얻는 방법이 각각 8가지씩 있다. 따라서 총 점수는 점이다.