大神们,管理员们
改一改本**蒟蒻**的代码吧
ps:谢谢数据
#include <cstdio>
#include <cstdlib>
#include <string>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int n,m,te=0,de=0,t=0,lo=0,tx,ty,dx,dy;
char a[250][250]={0},lu[300]={0};
bool check(char next)
{
if(next=='N')
{
if(tx-1>0&&a[tx-1][ty]=='.')
tx--;
if(tx-dx>=ty-dy&&tx-dx>=dy-ty)
return false;
return true;
}
else if(next=='S')
{
if(tx+1<=n&&a[tx+1][ty]=='.')
tx++;
if(tx-dx<=ty-dy&&tx-dx<=dy-ty)
return false;
return true;
}
else if(next=='E')
{
if(ty+1<=m&&a[tx][ty+1]=='.')
ty++;
if(tx-dx>=ty-dy&&tx-dx<=dy-ty)
return false;
return true;
}
else if(next=='W')
{
if(ty-1>0&&a[tx][ty-1]=='.')
ty--;
if(tx-dx<=ty-dy&&tx-dx>=dy-ty)
return false;
return true;
}
}
int main()
{
scanf("%d%d\n",&n,&m);
for(int i=1;i<=n;i++)//读入
{
for(int j=1;j<=m;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='T')
te=1,tx=i,ty=j,a[i][j]='.';
else if(a[i][j]=='D')
de=1,dx=i,dy=j;
}
getchar();
}
scanf("%s",lu);
lo=strlen(lu);
if(lo==1&&lu[0]>='0'&&lu[0]<='9')//防止路为空
{
if(tx-dx>=ty-dy&&tx-dx>=dy-ty)//判断老师是否能一眼看见鸭子
printf("55555~~");
else
printf("%c",lu[0]);
return 0;
}
scanf("%d",&t);
if(n==0||m==0)//防地图为空
{
printf("%d",t);
return 0;
}
if(de==0||te==0)//老师或鸭子不在
{
printf("%d",t);
return 0;
}
int all=0;//可看漫画总量
for(int i=0;i<t;i++)
{
if(check(lu[i%lo]))//循环路线
all++;
}
if(all==0)
{
printf("55555~~");
return 0;
}
printf("%d",all);
return 0;
}