程式碼如下:
size, lines = [int(i) for i in input().split()], int(input()) matrix = [[0 for i in range(size[0])] for j in range(size[1])] for i in range(lines): spots = [int(i) for i in input().split()] if spots[0] == spots[2]: for j in range(min(spots[1], spots[3]), max(spots[1], spots[3]) + 1): matrix[j - 1][spots[0] - 1] = 1 elif spots[1] == spots[3]: for j in range(min(spots[0], spots[2]), max(spots[0], spots[2]) + 1): matrix[spots[1] - 1][j - 1] = 1 elif (spots[0] > spots[2] and spots[1] > spots[3]) or (spots[2] > spots[0] and spots[3] > spots[1]): for j, k in zip([l for l in range(min(spots[0], spots[2]), max(spots[0], spots[2]) + 1)], [m for m in range(min(spots[1], spots[3]), max(spots[1], spots[3]) + 1)]): matrix[k - 1][j - 1] = 1 else: for j, k in zip([l for l in range(min(spots[0], spots[2]), max(spots[0], spots[2]))], [m for m in range(max(spots[1], spots[3]), min(spots[1], spots[3]) - 1, -1)]): matrix[k - 1][j - 1] = 1 print(sum([sum(i) for i in matrix]))
範例測資也能過,但送出之後好像也只有範例測資過
求解
給你一組測資試試
Input:
4 4 1 4 1 1 4
Output:
4
希望能幫到你 debug
給你一組測資試試
Input:
4 4 1 4 1 1 4Output:
4希望能幫到你 debug
他用 min max 兩個軸的值會對調。果然你看得出來。
他用 min max 兩個軸的值會對調。果然你看得出來。
for + zip 在搭配兩個 list comprehension,其實看得我頭很痛 ...
他用 min max 兩個軸的值會對調。果然你看得出來。
for + zip 在搭配兩個 list comprehension,其實看得我頭很痛 ...
謝謝,我會再試試看的(抱歉弄那麼亂)
不是為了酸你或批評你寫的不簡潔,我 Python 也還寫得不多,僅希望至少你自己在 debug 時,能清楚了解哪些段落在做什麼
我是一開始就這樣,不然要除錯真的頭會暈。
x1, y1, x2, y2 = list(map(int, sys.stdin.readline().split()))