노노 그램은 이 (게임의 스크린 샷과 같이 보이는 두 개의 차원 논리 퍼즐입니다 Pixelo , 내가 좋아하는 노노 그램 게임) :
이 게임의 목표는 해당 숫자가 어떤 이미지를 인코딩하는지 파악하는 것입니다. 규칙은 간단합니다. 열 또는 행의 숫자는 해당 열 또는 행의 어딘가에 많은 상자가 한 행에 채워져 있음을 의미합니다. 예를 들어, 위 이미지의 맨 아래 행에는 상자가 채워져 있지 않아야하고, 위의 행에는 모든 상자가 채워져 있어야합니다. 아래에서 세 번째 줄에는 8 개의 채워진 상자가 있으며 모두 한 줄에 있습니다.
동일한 열 또는 행에 대해 두 개 이상의 숫자는 채워진 상자에 여러 개의 "실행"이 있으며, 그 사이에 최소한 하나의 공백이 있습니다. 순서가 유지됩니다. 예를 들어, 위 이미지의 맨 오른쪽 열에 3 개의 채워진 상자가 있고 그 아래에 최소 1 개의 공백이 있고 상자가 하나 더 채워져 있습니다.
거의 같은 퍼즐이 거의 완성되었습니다.
(X는 중요하지 않습니다. 플레이어가 "이 사각형은 확실히 채워져 있지 않습니다"라고 말하는 힌트 일뿐입니다. 지뢰 찾기에서 플래그를 생각하십시오. 규칙 의미는 없습니다.)
예를 들어, "2 2"라는 힌트가있는 가운데 열에는 2 개의 2 길이 길이의 상자가 채워져 있음을 알 수 있습니다.
당신의 임무는 당신이 그것을 받아들이기로 선택한다면, 이와 같은 퍼즐을 만들 프로그램이나 기능을 작성하는 것입니다. 보드의 크기는 stdin에서 단일 정수 (5 <= n <= 50) 또는 인수로 제공됩니다 (비노 그램 퍼즐이 정사각형이어야하는 이유는 없지만이 문제는 그럴 것입니다). 그 후에는 이미지에서 채워진 사각형과 채워지지 않은 사각형을 나타내는 일련의 1과 0이 각각 주어집니다. 그중 첫 번째 n은 맨 위 행이고 다음 행은 다음과 같습니다. 2 * 1 셀 보드를 반환하거나 인쇄합니다 (더 좋아 보이기 때문에 열에 대한 2 자리 힌트를위한 공간을 제공합니다) ), 입력 데이터에 해당하는 힌트가 모두 비어 있습니다.
출력 형식
견본
입력:
./nonogram <<< '5 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0'
OR
n(5,[0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,1,0])
영상:
산출:
1
2 1 2
3 2 1 2 3
+----------
3|
2 2|
1 1 1|
2 2|
3|
입력:
./nonogram <<< '15 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1'
영상:
산출:
1 1
1 1 3 3 5 5 3 3 1
7 2 3 2 4 2 3 210 2 3 0 4 215
+------------------------------
2|
1|
1|
1|
1|
1 1|
3 3 1 1|
1 5 1 1|
3 5 3|
1 5 1|
1 3 1|
1 1 1 1 1|
1 1 1 1 1 1 1 1|
11 3|
11 3|
설명
- 당신의 산출물이 풀릴 수있는 퍼즐 일 필요는 없습니다. 모든 비노 그램을 해결할 수있는 것은 아니지만 걱정할 필요는 없습니다. 좋은 퍼즐인지 아닌지에 상관없이 입력에 해당하는 힌트를 출력하십시오.
- 명령 행에서 인수를 취하는 프로그램이 허용됩니다. 이것은 위에서 언급 한 내용이지만 잘못된 생각을 가질 수 있습니다. 그것이 설명을위한 것입니다.
0
상자를 채우지 않은 행이나 열에 대해 인쇄 는 필수입니다. 나는 어디에서나 단어로 이것을 말하지 않지만 샘플 데이터에 있습니다.
5<=n<=50
은 스펙이므로 3 자리 숫자를 사용할 수 없습니다
-
이 포함되어 있지 않습니까?