17822
def spin(d, j, big, k):
for q in range(k):
if d == 0:
tmp = big[j][m-1]
for i in range(m-1, -1, -1):
big[j][i] = big[j][i-1]
big[j][0] = tmp
else:
tmp = big[j][0]
for i in range(0, m-1):
big[j][i] = big[j][i+1]
big[j][m-1] = tmp
n, m, t= map(int, input().split())
big = []
for i in range(n):
small = []
small= list(map(int, input().split()))
big.append(small)
for i in range(t):
x,d,k = map(int, input().split())
for j in range(x-1, n, x):
spin(d, j, big, k)
delIndex = []
for i in range(n):
for j in range(m):
if big[i][j] == 0:
continue
if i == 0:
if big[i][j] == big[i+1][j]:
delIndex.append([i,j])
elif i == n - 1:
if big[i][j] == big[i-1][j]:
delIndex.append([i,j])
else:
if big[i][j] == big[i+1][j] or big[i][j] == big[i-1][j]:
delIndex.append([i,j])
for i in range(n):
for j in range(m):
if big[i][j] == 0:
continue
if j == 0:
if big[i][j] == big[i][j+1] or big[i][j] == big[i][m-1]:
delIndex.append([i,j])
elif j == m - 1:
if big[i][j] == big[i][j-1] or big[i][j] == big[i][0]:
delIndex.append([i,j])
else:
if big[i][j] == big[i][j+1] or big[i][j] == big[i][j-1]:
delIndex.append([i,j])
if len(delIndex) == 0:
size = 0
for i in range(n):
for j in range(m):
if big[i][j] != 0:
size += 1
if size != 0:
res = 0
for i in range(n):
res += sum(big[i])
avg = float(res)/size
for i in range(n):
for j in range(m):
if big[i][j] == 0:
continue
if big[i][j] < avg:
big[i][j] += 1
elif big[i][j] > avg:
big[i][j] -= 1
for q in range(len(delIndex)):
i = delIndex[q][0]
j = delIndex[q][1]
big[i][j] = 0
res = 0
for i in range(n):
res += sum(big[i])
print(int(res))
Author And Source
이 문제에 관하여(17822), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@changing/17822저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)