1. def input_():#输入函数
  2. m,n = map(int,input().split())
  3. ls = [list(map(int,input().split())) for _ in range(m)]#多行列表限制输入
  4. x,y,s,k = input().split()#split()函数里面不要有任何参数
  5. x,y,k = map(int,[x,y,k])#整数转换
  6. move(x,y,s,k,m,n,ls)
  7. def direction(s,w):#方向函数
  8. a = "ULDR".index(s)
  9. b = [(-1,0),(0,-1),(1,0),(0,1)]
  10. a += 1 if w==0 else -1
  11. dx,dy = b[a%4]
  12. Nexts = "ULDR"[a%4]#下一个方向
  13. return dx,dy,Nexts
  14. def Transboundary(dx,dy,x,y,m,n):#防越界函数
  15. if (x+dx <= m and x+dx >= 0) and (y+dx <= n and y+dy >= 0):
  16. x,y = x+dx,y+dy
  17. return x,y
  18. def move(x,y,s,k,m,n,ls):#移动函数
  19. count = 0
  20. while count<k:
  21. if ls[x][y] == 0:
  22. ls[x][y] = 1
  23. dx,dy,s= direction(s,0)
  24. x,y = Transboundary(dx,dy,x,y,m,n)
  25. else:
  26. ls[x][y] = 0
  27. dx,dy,s= direction(s,1)
  28. x,y = Transboundary(dx,dy,x,y,m,n)
  29. count += 1
  30. print(x,y)
  31. input_()
点赞(0)
 

9.9 分

1 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论