수채화
시간 제한0.4초메모리 제한1024 MB
N개의 칸에 각각 색 집합이 주어지고 l부터 r까지 칠해져 있을 때, 남은 칸을 매번 새 색이 들어가도록 칠할 수 있는지 판단합니다.
문제
마린초는 수채화 그리기를 좋아한다. 그는 개의 칸으로 이루어진 색 수열을 만들려고 한다. 각 칸 ()에 대해 크기가 인 색 집합 를 고르고, 이 색들을 섞어 칸을 칠한다.
마린초는 이미 에 따라 칸 부터 까지를 칠했다. 이제 나머지 칸을 정해진 순서대로 칠한다. 다음에 칠할 칸은 존재하는 쪽의 또는 번 칸이다. 칠한 칸이 부터 까지일 때 다음 칸은 다음과 같다.
- 이고 이면 모든 칸을 칠한 상태이다.
- 이고 이면 다음 칸은 이다.
- 이고 이면 다음 칸은 이다.
- 이고 이면 다음 칸은 또는 이다.
마린초는 칸 부터 까지를 칠한 뒤 수열이 너무 단조롭다고 느꼈다. 그래서 앞으로 칠하는 칸마다, 지금까지 칠한 칸 어디에서도 쓰이지 않은 새 색이 최소 하나 있어야 한다고 정했다. 나머지 칸을 모두 칠할 수 있는지 판별하는 프로그램 aquarelle을 작성하라. 개의 초기 칠하기 각각에 대해 답을 구하라.
입력
첫 줄에 이 주어진다. 이어서 개의 줄에 각각 와 색 가 주어진다. 색은 서로 다른 양의 정수이다. 다음 줄에 가 주어지고, 마지막 개의 줄에 과 이 주어진다. 각 줄의 수는 공백 한 칸으로 구분된다.
- ,
출력
입력 순서대로 각 초기 칠하기마다 나머지 칸을 모두 칠할 수 있으면 1, 없으면 0을 출력한다.
힌트
첫 번째 초기 칠하기를 분석해 보자. 최적의 순서는 아래 표와 같다.
5번 칸을 처음에 칠했다면 모든 칸을 칠하지 못했을 것이라는 점에 주목하라.
세 번째 초기 칠하기를 분석해 보자.
6번 칸을 처음에 칠해도 이후 과정은 같고 여전히 실패한다. 따라서 답은 0이다.