| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 0.5 초 | 2048 MB | 4 | 3 | 3 | 100.000% |
이 문제는 투 스텝 문제입니다.
준혁이는 $N \times N$크기의 배열 $A$를 가지고 있다. 배열 $A$의 각 원소는 0ドル$또는 1ドル$로만 이루어져 있다.
준혁이는 이 배열에 두 연산을 총합하여 정확히 $N$회 해야 한다.
H $i$: $i$번째 행에 있는 모든 원소를 뒤집는다. 즉 $(1 \le j \le N)$인 모든 $j$에 대해 $A_{i,j}$가 0이라면 1로, 1이라면 0으로 바꾼다.V $j$: $j$번째 열에 있는 모든 원소를 뒤집는다. 즉 $(1 \le i \le N)$인 모든 $i$에 대해 $A_{i,j}$가 0이라면 1로, 1이라면 0으로 바꾼다.같은 연산을 여러 번 했다면, 그 연산을 한 횟수만큼 뒤집히게 된다.
준혁이는 배열에 연산을 한 이후 자리를 떴다. 준혁이의 지속된 문제 유출로 인해 분노한 성준이는 준혁이의 배열에 원하는 연산을 최대 1ドル$회 추가로 하였다. 성준이가 연산을 0ドル$회 할 수 있음에 유의하라.
다시 돌아온 준혁이는 성준이가 어떤 연산을 하였는지 알아내려고 한다. 준혁이를 도와 성준이가 연산을 하였다면 어떤 연산을 하였는지, 또는 연산을 하지 않았는지 구해보자.
당신의 프로그램은 채점 데이터 하나당 총 두 번 실행된다. 당신은 하나의 소스 코드에 두 가지 실행 과정을 모두 구현해야 한다.
모든 입력의 첫 줄에는 실행 단계를 나타내는 정수 $T$가 주어진다. $(1 \leq T \leq 2)$
만약 $T$가 1ドル$이라면 첫 번째 단계를 수행해야 하고, $T$가 2ドル$라면 두 번째 단계를 수행해야 한다.
첫 번째 단계에서는 배열에 연산을 정확히 $N$회 해야 한다.
입력
둘째 줄에 $N$이 주어진다. $(4 \leq N \leq 50)$
셋째 줄부터 $N$개의 줄에 걸쳐 $i+2$번째 줄에 $A_{i,1}, A_{i,2}, \ldots, A_{i,N}$이 공백으로 구분되어 주어진다.
출력
$N$개의 줄에 걸쳐 $N$개의 연산을 출력한다.
$i$번째 줄에 $i$번째 연산 $a$ $b$를 공백으로 구분하여 출력한다. ($a \in \{$H,V$\};1 \le b \le N$)
두 번째 단계에서는 성준이가 추가로 한 연산을 확인해야 한다.
첫 번째 단계에서 주어진 배열에 준혁이가 한 $N$개의 연산과 성준이가 한 연산이 적용된 배열을 $B$라고 하자.
입력
둘째 줄에 $N$이 주어진다. $(4 \leq N \leq 50)$
셋째 줄부터 $N$개의 줄에 걸쳐 $i+2$번째 줄에 $B_{i,1}, B_{i,2}, \ldots, B_{i,N}$이 공백으로 구분되어 주어진다.
출력
첫째 줄에 성준이가 추가로 한 연산의 수 $k$를 출력한다. (0ドル \le k \le 1$)
만약 $k=1$이라면 둘째 줄에 성준이가 한 연산 $a,ドル $b$를 공백으로 구분하여 출력한다. ($a \in \{$H,V$\};1 \le b \le N$)
1 5 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0
H 1 H 2 V 2 V 1 H 5
2 5 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1
1 H 2
University > 한양대학교 > 2025 한양대학교 ALOHA 단풍컵 C번