fork download
  1. def f(m,v):
  2. for i,x in enumerate(v):x%=len(m);r=m[i/2];m[i/2]=r[-x:]+r[:-x];m=zip(*m)
  3. return m
  4.  
  5. # Tests:
  6.  
  7. i = [([[1,2],[3,4]],[1,2,-3,-1]), ([[1,2],[3,4]],[1,1,1,1]),
  8. ([[1,2],[3,4]],[0,0,0,0]), ([[1,2,-3],[-4,5,6],[7,-8,0]],[1,-2,0,-1,3,4]),
  9. ([[1,2,-3],[-4,5,6],[7,-8,0]],[3,12,-3,0,-6,-3])]
  10. r = [[(2, 3), (4, 1)], [(3, 2), (4, 1)], [(1, 2), (3, 4)], [(7, 5, 0), (-3, -8, 2), (-4, 1, 6)],[(1, 2, -3), (-4, 5, 6), (7, -8, 0)]]
  11.  
  12. for pair, out in zip(i,r): assert f(*pair) == out
Success #stdin #stdout 0.02s 9016KB
stdin
Standard input is empty
stdout
Standard output is empty