AcWing 3152. 兰顿蚂蚁
原题链接
简单
作者:
忆--世界
,
2021-03-02 22:25:40
,
所有人可见
,
阅读 433
C++ 代码
#include<iostream>
using namespace std;
const int N=110;
int g[N][N];
int x,y,k,n,m,dir;//dir是方向
char s;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};//上右下左
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>g[i][j];
cin>>x>>y>>s>>k;
if(s=='U') dir=0;
else if(s=='D') dir=2;
else if(s=='L') dir=3;
else if(s=='R') dir=1;
int step;
while(step!=k)
{
if(g[x][y]==0)
{
dir-=1;
if(dir<0) dir=3;
g[x][y]=!g[x][y];
x+=dx[dir],y+=dy[dir];
step++;
}
else if(g[x][y]==1)
{
dir=(dir+1)%4;
g[x][y]=!g[x][y];
x+=dx[dir],y+=dy[dir];
step++;
}
}
cout<<x<<" "<<y;
return 0;
}