문제
최후 심판의 시나리오는 한 줄에 세 개의 숫자에 의해 설명되고 n
, m
하고 p
. 그 라인 다음에는 라인 당 값 이있는 n
라인이 m
있습니다. 각 값은 각 셀이 보유 할 수있는 총 물 단위를 나타냅니다.
다음 p
줄은 다음 p
날 날씨를 설명합니다 . 매일 1 셀에 1 단위의 비가 내립니다. 세포의 물량이 보유 할 수있는 양을 초과하면 세포가 침수됩니다. 인접한 여러 셀이 최대 용량 인 경우 공통 이웃을 공유하는 하나의 셀로 취급됩니다 (공백 그룹을 클릭 할 때 지뢰 찾기를 생각하십시오).
- 단일 중간 셀에는 4 개의 이웃이 있습니다.
- 2 개의 인접한 전체 용량 중간 셀은 6 개의 이웃이있는 하나의 셀로 처리됩니다.
- 단일 코너 셀에는 2 개의 이웃이 있습니다
- 단일 벽 셀에는 3 개의 이웃이 있습니다.
셀이 플러딩되면 플러드 이벤트가 발생합니다. 모든 초과 물은 이웃에 골고루 분배됩니다. 그로 인해 하나 이상의 이웃이 홍수를 일으키면 다른 홍수 이벤트가 발생합니다. 이것은 물이 식거나 도시가 완전히 침수 될 때까지 계속됩니다.
입력 예
7 5 3
3 2 3 4 5
2 0 2 3 4
1 2 3 3
4 1 2 2 2
4 1 2
4 1 4 2 2
4 4 2 2 2
0 0
1 2
3 4
0 0
열 1, 열 1에 비가 내렸다는 의미1 2
열 2, 열 3에 비가 내렸다는 것을 의미합니다 (물이 0이되며 즉시 홍수가 발생할 수 있습니다).
p
비가 온 후 도시가 완전히 침수되면 Sink를 출력 합니다. 그렇지 않으면 Swim을 출력하십시오 .
출력 예
수영
가정
- 입력은 stdin을 통해 제공되거나 "city.txt"에서 읽거나 인수로 승인 될 수 있습니다. 세 가지 모두 이미 게시 된 답변을 무효화하지 않도록 허용됩니다.
- 물 용량은 음이 아닌 정수입니다.
다양한 언어로 프로그래밍 콘테스트에서 경쟁하는 40 명 이상의 저학년 대학생 (A & M, UT, LSU, Rice, Baylor 등)이 5 시간 안에이 문제를 해결할 수 없었습니다. 그로 인해 나는 해결책을 사소하게 만드는이 퍼즐에 캐치가 있다고 언급 할 수는 없습니다. 가장 짧은 코드는 퍼즐을 해결할 것이라고 확신하기 때문에 가장 짧은 코드가 여전히 승리합니다.
0.25
단위를 인접한 각 셀에 분배합니까 (단일 중간 홍수 셀을 가정)?
n
선m
입니까 아니면 다른 방법입니까? 귀하의 예가 작성된 사양과 일치하지 않습니다.