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

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

라우팅

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

난이도

아직 분류되지 않았습니다

정답자
아직 제출이 없습니다

문제

베드로 팬은 앞으로의 직업을 정하는 데 도움을 받으려고 진로 상담을 받았다. 그러나 그는 어른이 되고 싶지 않아서 도망쳐 네버랜드에 숨었다.

네버랜드에는 서쪽에서 동쪽으로 흐르는 강이 두 개 있다. 첫 번째 강변에는 aa개의 도시가 있고, 강이 흐르는 방향을 따라 11부터 aa까지 번호가 붙어 있다. 두 번째 강에도 같은 방식으로 11부터 bb까지 번호가 붙은 도시 bb개가 있다. 강을 따라 내려갈 때, 두 도시가 같은 강에 있고 i<ji < j이면 도시 ii에서 도시 jj로 갈 수 있다.

시민들은 일방향 항공편 mm개를 만들 계획이다. ii번째 항공편은 첫 번째 강의 도시 xix_i와 두 번째 강의 도시 yiy_i를 잇는데, 방향은 아직 정하지 않았다. 시민들은 도시들이 최대한 서로 연결되기를 바란다. 그때 베드로 팬은 항공편의 방향을 정하는 일을 직업으로 삼고 싶어졌다.

두 도시는 서로에게서 상대 도시로 갈 수 있으면 연결되어 있다고 한다. 이동할 때는 항공편과 강을 모두 사용할 수 있다. 베드로 팬은 연결된 도시 쌍이 하나도 없는 도시 집합 중 가장 큰 것의 크기가 최소가 되도록 항공편의 방향을 정하려고 한다. 방향을 정하고 그 집합의 크기를 구하라.

입력

첫 줄에 양의 정수 aa, bb, mm(1≤a,b,m≤200 0001 \le a, b, m \le 200\,000)이 주어진다. 각각 첫 번째 강의 도시 수, 두 번째 강의 도시 수, 항공편 수이다.

다음 mm개의 줄 중 ii번째 줄에는 양의 정수 xix_i와 yiy_i(1≤xi≤a1 \le x_i \le a, 1≤yi≤b1 \le y_i \le b)가 주어진다. 이는 첫 번째 강의 도시 xix_i와 두 번째 강의 도시 yiy_i를 잇는 항공편이다. 같은 도시 쌍이 두 번 이상 주어지지 않는다.

출력

첫 줄에 연결된 도시 쌍이 없는 도시 집합 중 가장 큰 것의 크기의 최솟값을 출력한다.

둘째 줄에는 0 또는 1로 이루어진 문자들을 공백으로 구분해 출력한다. 0은 항공편이 첫 번째 강에서 출발해 두 번째 강에 도착한다는 뜻이고, 1은 그 반대이다. 답이 여러 개이면 아무거나 출력해도 된다.

힌트

첫 번째 예제에서 항공편은 출력된 대로 방향이 정해진다. 어느 도시에서 출발해도 다른 모든 도시에 도달할 수 있다. 따라서 연결되지 않은 도시들의 최대 집합은 원소가 하나뿐인 집합이다. 예를 들어 첫 번째 강의 도시 5에서 출발해 첫 번째 강의 도시 1에 도달할 수 있다.

5 (I) → 3 (II) → 2 (I) → 3 (I) → 1 (II) → 2 (II) → 1 (I)

예제3

  1. 예제 1

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

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

    입력
    8 7
    7
    1 3
    2 1
    3 4
    5 6
    6 5
    6 7
    8 7
    
    예상 출력
    5
    1 0 1 1 0 1 0