AT212 P-CASカードと高橋君 题解
Doveqise
2019-03-07 16:43:11
这个题是一个小模拟,按题意写即可 小小的判断一下边界 下见代码
(跟刘汝佳学的dx dy数组骚操作233 不用各种switch)
```cpp
#include<bits/stdc++.h>
using namespace std;
int main() {
int x,y;scanf("%d%d",&x,&y);
x--;y--;
string w;cin>>w;//操作
char m[9][9];//密码表
for(int i=0;i<9;i++){
scanf("\n");//scanf要读空行QAQ
for(int j=0;j<9;j++) scanf("%c",&m[i][j]);//读入密码表
}
int dx[8]={1,-1,1,0,0,-1,-1,1};//挪动x
int dy[8]={0,0,-1,-1,1,1,-1,1};//挪动y
string s[8]={"R","L","RU","U","D","LD","LU","RD"};//判断指令
printf("%c",m[y][x]);//第一下不用移动
int ddx,ddy;//移动
for(int i=0;i<8;i++)
if(w==s[i])ddy=dy[i],ddx=dx[i];//判断移动
for(int i=0;i<3;i++){
if(x+ddx<0||x+ddx>=9)ddx=-ddx;//x越界
if(y+ddy<0||y+ddy>=9)ddy=-ddy;//y越界
x+=ddx;y+=ddy;//移动
printf("%c",m[y][x]);//输出密码
}
puts("");//万恶的换行
return 0;
}
```