用一个二维数组存储所有格子的颜色。
根据输入的x,y,s的值判断蚂蚁如何移动,如果蚂蚁在黑格将蚂蚁顺时针转90°并将蚂蚁移动一格,将原来位置处格子的颜色变成相反的颜色。
如果蚂蚁在白格将蚂蚁逆时针转90°并将蚂蚁移动一格,将原来位置处格子的颜色变成相反的颜色。
#include <stdio.h>
int main()
{
int m,n,i,j;
int x,y,k;
char s;
scanf("%d %d",&m,&n);
int p[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
fflush(stdin);
scanf("%d%d",&x,&y);
scanf(" %c",&s);
scanf("%d",&k);
for(i=0;i<k;i++)
{
if(p[x][y]==1)
{
if(s=='U')
{
s='R';
p[x][y]=0;
y+=1;
continue;
}
if(s=='R')
{
s='D';
p[x][y]=0;
x+=1;continue;
}
if(s=='D')
{
s='L';
p[x][y]=0;
y-=1;continue;
}
if(s=='L')
{
s='U';
p[x][y]=0;
x-=1;continue;
}
}
if(p[x][y]==0)
{
if(s=='U')
{
s='L';
p[x][y]=1;
y-=1;continue;
}
if(s=='R')
{
s='U';
p[x][y]=1;
x-=1;continue;
}
if(s=='D')
{
s='R';
p[x][y]=1;
y+=1;continue;
}
if(s=='L')
{
s='D';
p[x][y]=1;
x+=1;continue;
}
}
}
printf("%d %d",x,y);
}