Logo
(追記) (追記ここまで)

27211번 - 도넛 행성

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB1609109384767.706%

문제

준겸이는 $N \times M$칸으로 이루어진 도넛 모양의 행성에 살고 있다. 준겸이가 살고 있는 행성에는 위 그림처럼 격자 모양으로 줄이 그어져 있다. 행성의 각 칸은 숲으로 막혀 있거나, 지나갈 수 있도록 비어 있다.

준겸이는 본인의 집이 있는 위치를 기준으로 삼아 $(0,0)$이라고 표시하기로 했다. 준겸이는 행성 위에서 상하좌우로 걸어 다닐 수 있다. 준겸이가 오른쪽으로 한 칸 걸어가면, 위치 $(0,1)$에 도달할 것이다. 마찬가지로 아래로 한 칸 걸어가면, 위치 $(1,0)$에 도달할 것이다. 준겸이가 $(0,0)$에서 $M$칸 오른쪽으로 걸어가면, 한 바퀴를 돌아 다시 원래 자리로 되돌아오게 된다. 비슷하게 $(0,0)$에서 $N$칸 아래로 걸어가면, $(0,0)$으로 돌아오게 된다. 행성은 연결되어 있기 때문에, 준겸이가 $(0,0)$에서 왼쪽으로 한 칸 걸어가면 위치 $(0,M-1)$에 도달할 것이다. 마찬가지로 준겸이가 $(0,0)$에서 위로 한 칸 걸어가면 $(N-1, 0)$에 도달하게 된다.

준겸이는 행성을 탐험하려고 한다. 만약 준겸이가 비어 있는 어떤 칸 $A=(p_1,q_1)$에서 시작해, 숲에 막히지 않고 비어 있는 칸 $B=(p_2,q_2)$에 도달할 수 있다면 $A$와 $B$는 같은 구역이다. 반대로, 도달할 수 없다면 $A$와 $B$는 서로 다른 구역이다. 당신은 준겸이가 탐험할 수 있는 빈 구역의 개수가 몇 개인지 출력해야 한다.

입력

첫 번째 줄에 $N$과 $M$이 공백을 사이에 두고 주어진다.

두 번째 줄부터 $N$개의 줄에 걸쳐 $N \times M$개의 칸에 대한 정보가 주어진다. 두 번째 줄에서부터 $i$번째 줄에 주어지는 $j$번째 정수는 칸 $(i-1, j-1)$에 대한 정보이다. 만약 0이라면 비어 있는 것이고, 1이라면 숲으로 막혀 있는 것이다.

출력

탐험할 수 있는 구역의 개수를 출력한다.

제한

  • 2ドル \le N \le 1,000円$
  • 2ドル \le M \le 1,000円$

예제 입력 1

5 6
1 1 1 1 1 1
1 0 0 0 1 1
1 1 1 1 0 0
1 1 1 1 0 0
1 1 1 1 1 1

예제 출력 1

2

예제 입력 2

7 8
0 0 1 1 0 0 0 0
0 1 1 1 1 0 1 0
1 1 1 1 1 1 1 1
0 1 1 1 1 1 0 0
1 1 0 0 0 1 0 0
0 1 0 0 0 1 0 1
0 0 1 1 1 1 0 0

예제 출력 2

2

직사각형 격자로 보이지만 실제로는 한 바퀴를 돌아 이동할 수 있는 도넛 모양이기 때문에, 빈 영역의 개수는 두 개이다.

힌트

출처

Contest > 쇼미더코드: 원티드 주관 코딩테스트 대회 > 2022년 3회차 B번

  • 문제를 만든 사람: ryute
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /