int main(){
    int m,n;
    cin>>m>>n;
    int a[m][n];
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cin>>a[i][j];
        }
    }
    int x,y,k,fx;
    char s;
    cin>>x>>y>>s>>k;
    char cfx[4]={'U','R','D','L'};    //用于判断初始方向
    int ifx[4][2]={{-1,0},{0,1},{1,0},{0,-1}};    //每个方向的前进动作
    for(int i=0;i<4;i++) if(s==cfx[i]){fx=i;break;}    //判断初始方向
    while(k--){
        if(a[x][y]==0){//白格
            fx-=1;    //因为已经把方向根据上右下左排好序了,所以这里可以通过加减1来实现旋转
            if(fx==-1) fx=3;    //左转-1,这里实现的是上转到左,即0->3
            a[x][y]=1;    //改变格子颜色
            x=x+ifx[fx][0];    //实现列方向的动作
            y=y+ifx[fx][1];    //实现行方向的动作(这两行即实现前进一步)
        }else{//黑格,同上
            fx+=1;
            if(fx==4) fx=0;
            a[x][y]=0;
            x=x+ifx[fx][0];
            y=y+ifx[fx][1];
        }
    }
    cout<<x<<" "<<y;
}


点赞(0)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论