海洋之心


私信TA

用户名:wanggongsheng

访问量:132609

签 名:

等  级
排  名 18
经  验 21668
参赛次数 3
文章发表 163
年  龄 26
在职情况 学生
学  校
专  业 计算机技术

  自我简介:

读研ing,平时不登录dotcpp

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int r,c;
int step;
int dir[] ={0,1,2,3},dire;
int a[100][100];
int return_dir(char c){
    if(c=='U') return 0;
    if(c=='R') return 1;
    if(c=='D') return 2;
    return 3;
}
void move(int &x,int &y,int dire){
    if(dire==0)  x=x-1;
    if(dire==1)  y=y+1;
    if(dire==2)  x=x+1;
    if(dire==3)  y=y-1;
}
int main(void){
    cin >> r >> c;
    for(int i=0;i<r;i++)
    for(int j=0;j<c;j++)
    scanf("%d",a[i]+j);
    int x, y;
    char d;
    scanf("%d%d %c%d",&x,&y,&d,&step);
    dire=return_dir(d);
    for(int i=0;i<step;i++){
        if(a[x][y]==1) {
            a[x][y]=0;
            dire = (dire + 1 )%4;
            move(x,y,dire);
        }
        else {
            a[x][y]=1;
            dire = (dire+3) % 4;
            move(x,y,dire);
        }
    }
    printf("%d %d\n",x,y);
    return 0;
}

解题思路:





注意事项:





参考代码:

 

0.0分

1 人评分

  评论区

  • «
  • »