wojiaocbj

Untitled

May 6th, 2022
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.78 KB | None | 0 0
  1. import sys
  2. def rotate90(mat):
  3.     n=len(mat)
  4.     for i in range(n):
  5.         for j in range(n-i):
  6.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  7.     for i in range(n//2):
  8.         for j in range(n):
  9.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  10. def rotate180(mat):
  11.     n=len(mat)
  12.     for i in range(n):
  13.         for j in range(n-i):
  14.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  15.     for i in range(n//2):
  16.         for j in range(n):
  17.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  18.     for i in range(n):
  19.         for j in range(n-i):
  20.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  21.     for i in range(n//2):
  22.         for j in range(n):
  23.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  24. def rotate270(mat):
  25.     n=len(mat)
  26.     for i in range(n):
  27.         for j in range(n-i):
  28.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  29.     for i in range(n//2):
  30.         for j in range(n):
  31.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  32.     for i in range(n):
  33.         for j in range(n-i):
  34.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  35.     for i in range(n//2):
  36.         for j in range(n):
  37.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  38.     for i in range(n):
  39.         for j in range(n-i):
  40.             mat[i][j],mat[n-j-1][n-i-1]=mat[n-j-1][n-i-1],mat[i][j]
  41.     for i in range(n//2):
  42.         for j in range(n):
  43.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  44. def fliph(mat):
  45.     n=len(mat)
  46.     for i in range(n//2):
  47.         for j in range(n):
  48.             mat[i][j],mat[n-i-1][j]=mat[n-i-1][j],mat[i][j]
  49.            
  50. def flipv(mat):
  51.     n=len(mat)
  52.     for i in range(n):
  53.         for j in range(n//2):
  54.             mat[i][j],mat[i][n-j-1]=mat[i][n-j-1],mat[i][j]
  55.    
  56. if __name__=='__main__':
  57.     s=input().split()
  58.     A=[]
  59.     flag=0
  60.     n=int(s[0])
  61.     m=int(s[1])
  62.     for i in range(n):
  63.         A.append(input().split())
  64.     for i in range(m):
  65.         s=input().split()
  66.         if(len(s)!=2):
  67.             flag=1
  68.             break
  69.         if(s[0]=='rotate'):
  70.             a=int(s[1])
  71.             if(a==90):
  72.                 rotate90(A)
  73.             elif(a==180):
  74.                 rotate180(A)
  75.             elif(a==270):
  76.                 rotate270(A)
  77.             else:
  78.                 if(a!=0):
  79.                     flag=1
  80.                     break
  81.         elif(s[0]=='flip'):
  82.             if(s[1]=='horizontal'):
  83.                 flipv(A)
  84.             elif(s[1]=='vertical'):
  85.                 fliph(A)
  86.             else:
  87.                 flag=1
  88.                 break
  89.     if(flag):
  90.         print('Error')
  91.     else:
  92.         for i in A:
  93.             for j in i:
  94.                 print(j,end=' ')
  95.             print()
Advertisement
Add Comment
Please, Sign In to add comment