AcWing 3152. 兰顿蚂蚁
原题链接
简单
作者:
可乐加冰-1.0
,
2024-02-25 21:41:30
,
所有人可见
,
阅读 30
C++ 代码
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
int a[N][N];
int main()
{
int m,n;
scanf("%d%d",&m,&n);
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
int x, y, k;
char s;
cin >> x >> y >> s >> k;
for(int i = 1;i <= k;i++)
{
//在白格时的变化
if(a[x][y] == 0)
{
a[x][y] = 1;
if(s == 'U') {s = 'L';y -= 1;continue;}
if(s == 'D') {s = 'R';y += 1;continue;}
if(s == 'L') {s = 'D';x += 1;continue;}
if(s == 'R') {s = 'U';x -= 1;continue;}
}
//在黑格时的变化
if(a[x][y] == 1)
{
a[x][y] = 0;
if(s == 'U') {s = 'R';y += 1;continue;}
if(s == 'D') {s = 'L';y -= 1;continue;}
if(s == 'L') {s = 'U';x -= 1;continue;}
if(s == 'R') {s = 'D';x += 1;continue;}
}
}
cout<<x<<" "<<y<<endl;
return 0;
}