만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순열에서의 교환

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

요약
순열과 교환 가능한 위치 쌍이 주어질 때, 허용된 교환을 임의로 적용해 얻을 수 있는 가장 긴 증가 부분수열의 최대 길이를 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 유니온 파인드, 그래프, 정렬
정답자
아직 제출이 없습니다

문제

길이가 nn인 순열 aa와 mm개의 위치 쌍이 주어진다. 한 번의 연산에서는 이 mm개의 쌍 중 하나를 골라 두 위치의 원소를 서로 바꾼다. 이에 따라 순열이 바뀐다. 연산은 몇 번이든 해도 되고, 한 번도 하지 않아도 된다.

길이가 kk인 증가 부분 수열은 다음 두 조건을 만족하는 인덱스의 집합 j1,j2,…,jkj_1, j_2, \ldots, j_k이다.

  • 1≤j1<j2<…<jk≤n1 \le j_1 < j_2 < \ldots < j_k \le n;
  • aj1<aj2<…<ajka_{j_1} < a_{j_2} < \ldots < a_{j_k}.

올바르게 교환했을 때 얻을 수 있는 가장 긴 증가 부분 수열의 최대 길이는 얼마인가?

입력

첫째 줄에 순열의 길이 nn과 교환할 수 있는 위치 쌍의 개수 mm이 주어진다 (1≤n≤1041 \le n \le 10^4, 0≤m≤min⁡(105,n⋅(n−1)2)0 \le m \le \min(10^5, \frac{n \cdot (n - 1)}{2})).

둘째 줄에는 순열의 원소인 서로 다른 정수 nn개가 공백으로 구분되어 주어진다 (1≤ai≤n1 \le a_i \le n).

다음 mm개의 줄에는 각각 원소를 교환할 수 있는 위치 uiu_i와 viv_i가 주어진다 (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i). 같은 쌍이 두 번 주어지지 않는다.

출력

교환을 마친 순열이 가질 수 있는 가장 긴 증가 부분 수열의 길이를 정수 하나로 출력한다.

힌트

첫 번째 예시의 순열 [5,2,4,6,3,1][5, 2, 4, 6, 3, 1]을 보자.

5번과 6번 위치의 원소를 바꾸면 [5,2,4,6,1,3][5, 2, 4, 6, 1, 3]이 된다.

이제 1번과 5번 위치의 원소를 바꾸면 [1,2,4,6,5,3][1, 2, 4, 6, 5, 3]이 된다.

이 순열의 가장 긴 증가 부분 수열의 길이는 44이다. 해당 부분 수열은 [1,2,4,6,5,3][1, 2, 4, 6, 5, 3]이다.

예제2

  1. 예제 1

    입력
    6 2
    5 2 4 6 3 1
    5 6
    1 5
    
    예상 출력
    4
    
  2. 예제 2

    입력
    4 2
    2 1 4 3
    1 3
    2 4
    
    예상 출력
    3