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))

좋은 웹페이지 즐겨찾기