배경
오래되고 거친 흑백 이미지가 많이 있습니다. 그들 중 일부는 벽에 오르는 덩굴을 묘사하지만 다른 것들은 그렇지 않습니다. 당신의 임무는 나를 위해 분류하는 것입니다.
입력과 출력
입력은 편리한 형식으로 지정된 비트 A 의 직사각형 2D 배열입니다 . 비어 있지는 않지만 0과 1을 모두 포함한다고 보장 할 수는 없습니다. 다음 조건이 충족되는 경우 배열은 포도 나무를 나타냅니다.
- A 의 맨 아랫 줄 에는 최소한 1 개가 들어 있습니다. 이들은 포도 나무의 뿌리입니다.
- A의 모든 1 은 왼쪽, 오른쪽 및 아래쪽 (대각선이 아님)으로 만 이동하는 경로 1로 맨 아래 행에 연결됩니다. 이 길은 포도 나무의 가지입니다.
입력 값이 포도 나무를 나타내는 경우 출력은 일관된 진실 값이며, 그렇지 않으면 일관된 거짓 값입니다.
예
이 배열은 포도 나무를 나타냅니다.
0 0 1 0 0 1
0 1 1 0 0 1
0 1 0 1 1 1
1 1 0 1 0 1
0 1 1 1 0 1
0 0 1 0 1 1
이 입력은 포도 나무를 나타내지 않습니다. 오른쪽 경계의 중간에는 지점에 의해 뿌리에 연결되지 않은 1이 있기 때문에 :
0 0 0 1 1 0
0 1 0 1 1 1
0 1 0 1 0 1
0 1 1 1 1 0
0 0 1 1 0 1
all-0 배열은 덩굴을 묘사하지 않지만 all-1 배열은 항상 그렇습니다.
규칙과 득점
전체 프로그램이나 함수를 작성할 수 있습니다. 바이트 수가 가장 적고 표준 허점이 허용되지 않습니다.
테스트 사례
진실한 입력 :
1
0
1
1
01
11
0000
0111
1100
1001
1111
1111
1111
1111
001001
011001
010111
110101
011101
001011
1011011
1001001
1111111
0100000
0111111
1111001
1001111
1111101
0000000
0011100
0010100
0011100
0001000
1111111
0001000
0011100
0010100
0010100
잘못된 입력 :
0
1
0
10
01
000
000
000
011
110
000
111111
000000
101011
111001
010010
001000
000010
110001
001100
111111
110101
010011
111011
000110
010111
010101
011110
001101
11000000
10110001
10011111
11110001
01100011
00110110
01101100
01100001
01111111