아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

다섯 기준으로 저글링하기

시간 제한1초메모리 제한128 MB

요약
다섯 가지 관계 기호(<, =, >)로 이루어진 n개의 패턴과 길이 l이 주어질 때, 순열의 역전 수, 인접 역전 수, 최장 증가 부분수열, 최장 증가 연속 구간, 고정점 다섯 값이 그 패턴을 정확히 만족하는 길이 l의 두 순열이 존재하는지 판정한다.
난이도

어려움10점 중 9점

유형
조합론, 동적 계획법, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

길이 nn인 순열 p=(p1,p2,…,pn)p = (p_1, p_2, \ldots, p_n)은 11부터 nn까지의 정수를 각각 정확히 한 번씩 담은 배열이다. 다음 다섯 가지 기준은 순열 pp가 항등 순열 (1,2,…,n)(1, 2, \ldots, n)에 얼마나 가까운지를 나타낸다.

  • a(p)a(p) — pp의 역위(inversion) 개수: i<ji < j이면서 pi>pjp_i > p_j인 인덱스 쌍 (i,j)(i, j)의 수.
  • b(p)b(p) — pp의 인접 역위(local inversion) 개수: pi>pi+1p_i > p_{i+1}인 인덱스 ii의 수.
  • c(p)c(p) — pp의 최장 증가 부분수열(LIS) 길이: i1<i2<⋯<iki_1 < i_2 < \cdots < i_k이면서 pi1<pi2<⋯<pikp_{i_1} < p_{i_2} < \cdots < p_{i_k}인 수열의 최대 길이.
  • d(p)d(p) — pp의 최장 증가 연속 구간 길이: pi<pi+1<⋯<pjp_i < p_{i+1} < \cdots < p_j를 만족하는 연속한 구간의 최대 길이.
  • e(p)e(p) — pp의 고정점(fixed point) 개수: pi=ip_i = i인 인덱스 ii의 수.

이 다섯 기준은 서로 독립적으로 변할 수 있다. 각 기준마다 pp에서의 값이 qq에서의 값보다 작은지, 같은지, 큰지를 미리 정해 준 조합이 주어졌을 때, 그 조합을 정확히 실현하는 같은 길이의 두 순열 pp와 qq를 찾는 것이 목표다.

주어진 각 관계 집합과 고정된 길이 ll에 대해, 길이 ll인 그런 순열 쌍이 존재하는지 판정하라.

입력

첫 줄에는 두 정수 nn과 ll이 주어진다. 각각 관계 집합의 개수와 순열의 길이이다 (1≤n≤2431 \le n \le 243; 1≤l≤10001 \le l \le 1000).

이어지는 nn개의 줄에는 각각 다섯 개의 문자로 이루어진 관계 집합이 하나씩 주어진다. 각 문자는 <\texttt{<}, =\texttt{=}, >\texttt{>} 중 하나이며, 순서대로 a(p)a(p)와 a(q)a(q), b(p)b(p)와 b(q)b(q), c(p)c(p)와 c(q)c(q), d(p)d(p)와 d(q)d(q), e(p)e(p)와 e(q)e(q) 사이에 원하는 관계를 나타낸다.

출력

각 관계 집합에 대해, 다섯 관계를 모두 동시에 만족하는 길이 ll의 두 순열 pp와 qq가 존재하면 Exists\texttt{Exists}를, 그렇지 않으면 Not exists\texttt{Not exists}를 출력하라.

입력에 주어진 순서대로 각 관계 집합의 답을 한 줄에 하나씩 출력한다.

참고

다섯 관계는 하나의 순열 쌍 (p,q)(p, q)에 대해 동시에 성립해야 한다.

예를 들어 p=(1,4,2,3)p = (1, 4, 2, 3), q=(2,3,4,1)q = (2, 3, 4, 1)이라 하면

  • a(p)=2<3=a(q)a(p) = 2 < 3 = a(q),
  • b(p)=1=1=b(q)b(p) = 1 = 1 = b(q),
  • c(p)=3=3=c(q)c(p) = 3 = 3 = c(q),
  • d(p)=2<3=d(q)d(p) = 2 < 3 = d(q),
  • e(p)=1>0=e(q)e(p) = 1 > 0 = e(q)

이므로, 이 쌍은 길이 44에서 관계 집합 <==<>\texttt{<==<>}를 실현한다.

예제6

  1. 예제 1

    입력
    3 4
    <==<>
    <<<<<
    =====
    
    예상 출력
    Exists
    Not exists
    Exists
    
  2. 예제 2

    입력
    4 1
    =====
    <====
    ====>
    >>>>>
    
    예상 출력
    Exists
    Not exists
    Not exists
    Not exists
    
  3. 예제 3

    입력
    5 2
    =====
    <<>>>
    >><<<
    <<<<<
    ====<
    
    예상 출력
    Exists
    Exists
    Exists
    Not exists
    Not exists
    
  4. 예제 4

    입력
    7 3
    =====
    <<>>=
    =====
    >><<>
    <<<<<
    >>>>>
    ==<==
    
    예상 출력
    Exists
    Exists
    Exists
    Exists
    Not exists
    Not exists
    Not exists
    
  5. 예제 5

    입력
    5 6
    =====
    <<<=>
    <<<>=
    <<===
    =<>>=
    
    예상 출력
    Exists
    Not exists
    Not exists
    Exists
    Exists
    
  6. 예제 6

    입력
    5 7
    =====
    <<<=>
    <<<>=
    >>>=<
    <<<<<
    
    예상 출력
    Exists
    Exists
    Exists
    Exists
    Exists