다섯 기준으로 저글링하기
시간 제한1초메모리 제한128 MB
다섯 가지 관계 기호(<, =, >)로 이루어진 n개의 패턴과 길이 l이 주어질 때, 순열의 역전 수, 인접 역전 수, 최장 증가 부분수열, 최장 증가 연속 구간, 고정점 다섯 값이 그 패턴을 정확히 만족하는 길이 l의 두 순열이 존재하는지 판정한다.
문제
길이 인 순열 은 부터 까지의 정수를 각각 정확히 한 번씩 담은 배열이다. 다음 다섯 가지 기준은 순열 가 항등 순열 에 얼마나 가까운지를 나타낸다.
- — 의 역위(inversion) 개수: 이면서 인 인덱스 쌍 의 수.
- — 의 인접 역위(local inversion) 개수: 인 인덱스 의 수.
- — 의 최장 증가 부분수열(LIS) 길이: 이면서 인 수열의 최대 길이.
- — 의 최장 증가 연속 구간 길이: 를 만족하는 연속한 구간의 최대 길이.
- — 의 고정점(fixed point) 개수: 인 인덱스 의 수.
이 다섯 기준은 서로 독립적으로 변할 수 있다. 각 기준마다 에서의 값이 에서의 값보다 작은지, 같은지, 큰지를 미리 정해 준 조합이 주어졌을 때, 그 조합을 정확히 실현하는 같은 길이의 두 순열 와 를 찾는 것이 목표다.
주어진 각 관계 집합과 고정된 길이 에 대해, 길이 인 그런 순열 쌍이 존재하는지 판정하라.
입력
첫 줄에는 두 정수 과 이 주어진다. 각각 관계 집합의 개수와 순열의 길이이다 (; ).
이어지는 개의 줄에는 각각 다섯 개의 문자로 이루어진 관계 집합이 하나씩 주어진다. 각 문자는 , , 중 하나이며, 순서대로 와 , 와 , 와 , 와 , 와 사이에 원하는 관계를 나타낸다.
출력
각 관계 집합에 대해, 다섯 관계를 모두 동시에 만족하는 길이 의 두 순열 와 가 존재하면 를, 그렇지 않으면 를 출력하라.
입력에 주어진 순서대로 각 관계 집합의 답을 한 줄에 하나씩 출력한다.
참고
다섯 관계는 하나의 순열 쌍 에 대해 동시에 성립해야 한다.
예를 들어 , 이라 하면
- ,
- ,
- ,
- ,
이므로, 이 쌍은 길이 에서 관계 집합 를 실현한다.