#55371: Python窮舉解


jason42552@smail.ilc.edu.tw (陳昊哲)


用窮舉法就可以解了

Map = [list(map(int, input().split())) for i in range(R)]
for r in range(R):
    for c in range(C):
        if(Map[r][c] == 5):
            for i in [(0, 1), (1, 1), (1, 0), (-1, 1), (-1, -1), (1, -1), (-1, 0), (0, -1)]:
                if(r + i[0] >= 0 and r + i[0] < R and c + i[1] >= 0 and c + i[1] < C):
                    if(Map[r + i[0]][c + i[1]] == 5 or Map[r + i[0]][c + i[1]] == 6):
                        Map[r][c] = 6
pass_count = 0
for r in range(R):
    for c in range(C):
        if(Map[r][c] == 5):
            for i in [(0, 1), (1, 1), (1, 0), (-1, 1), (-1, -1), (1, -1), (-1, 0), (0, -1)]:
                if(r + i[0] >= 0 and r + i[0] < R and c + i[1] >= 0 and c + i[1] < C):
                    if(Map[r + i[0]][c + i[1]] == 1):
                        Map[r + i[0]][c + i[1]] = 2
                        pass_count += 1
Nopass_count = 0
for i in Map:
    Nopass_count += i.count(1)
print(pass_count, Nopass_count)

先用雙層for迴圈 判斷是否為感測器

1為炸彈

2為被偵測到的答案

5為正常感測器

6為失靈感測器

#55372: Re: Python窮舉解


jason42552@smail.ilc.edu.tw (陳昊哲)


用窮舉法就可以解了

Map = [list(map(int, input().split())) for i in range(R)]
for r in range(R):
    for c in range(C):
        if(Map[r][c] == 5):
            for i in [(0, 1), (1, 1), (1, 0), (-1, 1), (-1, -1), (1, -1), (-1, 0), (0, -1)]:
                if(r + i[0] >= 0 and r + i[0] < R and c + i[1] >= 0 and c + i[1] < C):
                    if(Map[r + i[0]][c + i[1]] == 5 or Map[r + i[0]][c + i[1]] == 6):
                        Map[r][c] = 6
pass_count = 0
for r in range(R):
    for c in range(C):
        if(Map[r][c] == 5):
            for i in [(0, 1), (1, 1), (1, 0), (-1, 1), (-1, -1), (1, -1), (-1, 0), (0, -1)]:
                if(r + i[0] >= 0 and r + i[0] < R and c + i[1] >= 0 and c + i[1] < C):
                    if(Map[r + i[0]][c + i[1]] == 1):
                        Map[r + i[0]][c + i[1]] = 2
                        pass_count += 1
Nopass_count = 0
for i in Map:
    Nopass_count += i.count(1)
print(pass_count, Nopass_count)

先用雙層for迴圈 判斷是否為感測器

1為炸彈

2為被偵測到的炸彈

5為正常感測器

6為失靈感測器