BOI-handsome 수
시간 제한1초메모리 제한256 MB
길이 n인 {1,2,3} 문자열 가운데 금지된 인접 쌍을 피하는 것을, 위치 순열이 정하는 순서로 B 이하까지 세는 문제이다.
문제
자릿수가 1, 2, 3 세 종류뿐인 수를 생각한다. 특별한 집합 는 두 자리의 순서쌍들을 원소로 가진다. 어떤 수에서 이웃한 두 자리로 이루어진 순서쌍 중 하나라도 에 속하면, 그 수를 위험한 수라고 부른다.
수 가 다음 세 조건을 모두 만족하면 BOI-handsome 수라고 한다.
- 는 오직 자릿수 1, 2, 3 으로만 이루어진다.
- 는 정확히 자리이다.
- 는 위험한 수가 아니다.
BOI-handsome 수들을 비교하는 순서는 보통의 대소 비교와 다르다. 왼쪽에서부터 1번째, 2번째 자리 순서로 비교하는 대신, 의 어떤 순열 에 따라 비교한다. 즉 먼저 번째 자리를 비교하고, 같으면 번째 자리를, 그다음 번째 자리를 비교하며, 번째 자리까지 이어간다. 이 비교 순서를 P-순서라고 부른다.
BOI-handsome 수 가 주어질 때, P-순서로 보다 작거나 같은 BOI-handsome 수가 몇 개인지 구하라. 답이 매우 커질 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫째 줄에 BOI-handsome 수의 자릿수 이 주어진다.
둘째 줄에 순열 를 나타내는 개의 정수가 공백으로 구분되어 주어진다. 번째 정수가 이다.
셋째 줄에 집합 의 원소 개수 이 주어진다.
넷째 줄에 의 서로 다른 원소 개가 공백으로 구분되어 주어진다. 각 원소는 두 자리 수 형태이다.
다섯째(마지막) 줄에 수 가 주어진다.
출력
P-순서로 보다 작거나 같은 BOI-handsome 수의 개수를 로 나눈 나머지를 한 줄에 출력한다.
제한
- 의 각 원소는 인 형태이다.
- 는 BOI-handsome 수이다.
힌트
아래는 첫 번째 예제(, , , )에 대한 설명이다.
자릿수 1, 2, 3 으로 이루어진 세 자리 수 중 P-순서로 보다 작거나 같은 수를, P-순서로 증가하는 순으로 나열하면 다음과 같다.
이 가운데 은 이웃한 두 자리에 또는 를 포함하므로 위험한 수이다. 남은 9 개가 BOI-handsome 수이므로 답은 이다.