| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 107 | 30 | 20 | 40.000% |
당신의 친구는 '똥 피하기 게임'이라는 재미있는 게임을 개발하고 있다. 그러던 중, 친구는 당신에게 게임 테스트를 요청하였다. 게임의 규칙은 다음과 같다.
똥 피하기 게임의 규칙을 읽어본 당신은 한 가지 허점을 발견했다.
정해진 수의 똥이 격자를 계속해서 순환하며 떨어지기 때문에, 처음 똥의 배치만 알면 똥의 움직임을 완전히 예측할 수 있다는 것이다.
그렇다면, 캐릭터가 특정 칸에서 시작해 적절히 움직여서 영원히 게임이 끝나지 않도록 만들 수 있을지도 모른다.
친구를 놀라게 하기 위해, 초기 격자 상태를 보고 맨 아래 행의 어떤 칸에서 시작하면 영원히 게임을 끝내지 않을 수 있는지 모두 찾아보자!
첫째 줄에 두 정수 $N,ドル $M$이 주어진다. $(N\ge 2;$ $M\ge2;$ $N\times M \le 10^6)$
둘째 줄부터 $N$개의 줄에 걸쳐, $N \times M$ 크기의 초기 격자의 상태가 맨 위 행부터 맨 아래 행까지 순서대로 주어진다.
이때 각 $N$개의 줄은 빈 칸을 나타내는 .와 똥이 있는 칸을 나타내는 X로만 이루어져 있는, 길이가 $M$인 문자열이다.
맨 아래 행의 칸에는 똥이 놓여 있지 않다.
첫째 줄에 조건을 만족하는 맨 아래 행의 칸의 개수 $K$를 출력한다. (0ドル \le K \le M$)
둘째 줄에 그러한 칸들이 왼쪽에서부터 몇 번째 열의 칸인지를 나타내는 $K$개의 정수를, 오름차순으로 공백으로 구분하여 출력한다.
4 4 X.X. .X.X X.X. ....
2 1 3
맨 아래 행의 1ドル$열에서 시작하는 경우, 1ドル$초마다 1ドル$열$\rightarrow 2$열$\rightarrow 1$열$\rightarrow 2$열$\rightarrow 1$열$\rightarrow\cdots$을 오가면 영원히 게임이 끝나지 않도록 할 수 있다.
맨 아래 행의 2ドル$열에서 시작하는 경우, 1ドル$초가 지날 때 왼쪽이나 오른쪽으로 이동해야 하며, 어느 방향으로 이동하더라도 반드시 똥과 같은 칸에 위치하게 되어 게임이 끝난다.
맨 아래 행의 3ドル$열에서 시작하는 경우, 1ドル$초마다 3ドル$열$\rightarrow 4$열$\rightarrow 3$열$\rightarrow 4$열$\rightarrow 3$열$\rightarrow\cdots$을 오가면 영원히 게임이 끝나지 않도록 할 수 있다.
맨 아래 행의 4ドル$열에서 시작하는 경우, 1ドル$초가 지날 때 왼쪽으로 이동해야 하며, 왼쪽으로 이동하면 똥과 같은 칸에 위치하게 되어 게임이 끝난다.
3 4 X.X. .X.X ....
0
University > 서울대학교 > 2025 SCSC 알고리즘 대난투 H번