만드는 중입니다

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

컬러그래프

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

요약
빨간색과 파란색으로 칠해진 완전 그래프에서 목표한 연결 상태를 만드는 데 필요한 간선 색 변경의 최소 횟수와 그 간선들을 구합니다.
난이도

보통10점 중 7점

유형
그래프, 수학
정답자
아직 제출이 없습니다

문제

Lora는 온라인 퍼즐 게임을 하고 있다. 그녀는 정점이 NN개인 무방향 그래프를 받는다. 정점에는 1부터 NN까지 번호가 매겨져 있다. 서로 다른 두 정점 사이에는 반드시 간선이 하나 있고, 그 색은 파란색 또는 빨간색이다.

빨간 간선만 사용해서 어떤 정점에서든 다른 모든 정점에 도달할 수 있으면 그래프는 빨간색 연결이다. 마찬가지로 파란 간선만 사용해서 어떤 정점에서든 다른 모든 정점에 도달할 수 있으면 파란색 연결이다.

그래프의 상태는 다음 조건을 따르는 쌍 (A,B)(A, B)이다.

  • 빨간색 연결이면 A=1A=1, 아니면 A=0A=0
  • 파란색 연결이면 B=1B=1, 아니면 B=0B=0

예를 들어 상태 (1,0)(1, 0)은 빨간색 연결이지만 파란색 연결은 아닌 그래프를 나타낸다.

Lora는 간선 하나를 한 번 클릭하여 그 색을 파란색에서 빨간색으로, 또는 빨간색에서 파란색으로 바꿀 수 있다. 초기 그래프와 목표 최종 상태가 주어졌을 때, 최소 클릭 수로 최종 상태의 그래프를 만드는 것이 목표다. 이 최소 클릭 수를 구하는 프로그램 colorgraph를 작성하라.

입력

첫 줄에는 정점의 개수를 나타내는 양의 정수 NN이 주어진다. 이어지는 NN개의 줄에는 간선의 색을 나타내는 NN개의 수가 공백으로 구분되어 있다. ii번째 줄의 jj번째 수를 GijG_{ij}라고 하자. Gij=0G_{ij}=0이면 정점 ii와 jj를 잇는 간선은 빨간색이고, Gij=1G_{ij}=1이면 파란색이다. Gij=GjiG_{ij}=G_{ji}가 보장된다. i=ji=j인 경우 그래프에 자기 루프가 없으므로 GijG_{ij}의 값은 상관없다.

마지막 줄에는 목표 상태를 나타내는 두 수 AA와 BB가 공백으로 구분되어 주어진다.

출력

그래프를 목표 상태로 바꿀 수 없으면 -1을 한 줄에 출력한다.

그렇지 않으면 첫 줄에 최소 클릭 수 KK를 출력한다. 이어지는 KK개의 줄에는 Lora가 클릭해야 하는 간선의 양 끝점을 나타내는 두 수를 한 쌍씩 출력한다. 해가 여러 개이면 아무거나 출력해도 된다. 간선의 순서와 각 쌍 안의 두 끝점 순서는 상관없다.

제한

시간 제한: 2000 ms. 메모리 제한: 512 MB.

3≤N≤2503 \le N \le 250

힌트

빨간 간선은 실선으로, 파란 간선은 점선으로 그려져 있다.

첫 번째 예제에서 초기 그래프의 상태는 (1, 0)이다.

간선 1-3과 4-3의 색을 바꾸면 그래프는 목표 상태인 (0, 1)이 된다.

두 번째 예제에서는 정점이 3개이고 상태가 (1, 1)인 그래프가 존재하지 않는다.

세 번째 예제에서는 그래프가 처음부터 목표 최종 상태이다.

예제3

  1. 예제 1

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

    입력
    3
    0 1 1
    1 0 0
    1 0 0
    1 1
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    3
    0 1 1
    1 0 0
    1 0 0
    0 1
    
    예상 출력
    0