Skip to content

Instantly share code, notes, and snippets.

@hrsvrdhn
Created August 14, 2017 14:10
Show Gist options
  • Save hrsvrdhn/b7c9b804e702ee209d3343cf56dd8bc8 to your computer and use it in GitHub Desktop.
Save hrsvrdhn/b7c9b804e702ee209d3343cf56dd8bc8 to your computer and use it in GitHub Desktop.
m,n,k = map(int,raw_input().split())
matrix = []
for _ in xrange(m):
matrix.append(map(int,raw_input().split()))
row,col = 0,0
for _ in xrange(min(m,n)/2):
peel = []
for i in range(col,n-col):
peel.append(matrix[row][i])
for i in range(row+1,m-row):
peel.append(matrix[i][n-col-1])
for i in range(n-col-2,col-1,-1):
peel.append(matrix[m-row-1][i])
for i in range(m-row-2,row,-1):
peel.append(matrix[i][col])
limit = 2*(n+m - 2*(row+col+1))
peel = peel[k%limit:] + peel[:k%limit]
p = 0
for i in range(col,n-col):
matrix[row][i] = peel[p]
p += 1
for i in range(row+1,m-row):
matrix[i][n-col-1] = peel[p]
p += 1
for i in range(n-col-2,col-1,-1):
matrix[m-row-1][i] = peel[p]
p += 1
for i in range(m-row-2,row,-1):
matrix[i][col] = peel[p]
p += 1
row += 1
col += 1
for rows in matrix:
print " ".join(str(number) for number in rows)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment