http://poj.org/problem?id=2632
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 7470 | Accepted: 3265 |
Description
Input
Output
Sample Input
4 5 4 2 2 1 1 E 5 4 W 1 F 7 2 F 7 5 4 2 4 1 1 E 5 4 W 1 F 3 2 F 1 1 L 1 1 F 3 5 4 2 2 1 1 E 5 4 W 1 L 96 1 F 2 5 4 2 3 1 1 E 5 4 W 1 F 4 1 L 1 1 F 20
Sample Output
Robot 1 crashes into the wall Robot 1 crashes into robot 2 OK Robot 1 crashes into robot 2
Source
#include<cstdio>
#include<cstring>
struct point
{
int x,y;
char c;
}f[105];
struct node
{
int x,y;
char c;
}ff[105];
int a,b,n,m;
bool check(int k) //判断函数,开始就是有点卡这里
{
int i;
if(f[k].x<=0||f[k].x>a||f[k].y<=0||f[k].y>b) //跟墙碰撞
{
printf("Robot %d crashes into the wall\n",k);
return 1;
}
for(i=1;i<=n;i++) //跟其它机器人碰撞
{
if(i==k) continue;
if(f[k].x==f[i].x&&f[k].y==f[i].y)
{
printf("Robot %d crashes into robot %d\n",k,i);
return 1;
}
}
return 0;
}
int main()
{
//freopen("a.txt","r",stdin);
int t,i,j,l,k,flag;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&a,&b,&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d%d %c",&f[i].x,&f[i].y,&f[i].c);
//printf("%d%d%c\n",f[i].x,f[i].y,f[i].c);
}
flag=0;
for(i=1;i<=m;i++)
{
scanf("%d %c %d",&ff[i].x,&ff[i].c,&ff[i].y);
//printf("%d%c%d\n",ff[i].x,ff[i].c,ff[i].y);
//
k=ff[i].x;
if(ff[i].c=='L')
{
l=ff[i].y%4; //4个方向一个周期 看剩下多少步
for(j=1;j<=l;j++)
{
if(f[k].c=='N')
f[k].c='W';
else if(f[k].c=='E')
f[k].c='N';
else if(f[k].c=='S')
f[k].c='E';
else if(f[k].c=='W')
f[k].c='S';
}
}
else if(ff[i].c=='R')
{
l=ff[i].y%4; //同理
for(j=1;j<=l;j++)
{
if(f[k].c=='N')
f[k].c='E';
else if(f[k].c=='E')
f[k].c='S';
else if(f[k].c=='S')
f[k].c='W';
else if(f[k].c=='W')
f[k].c='N';
}
}
else
{
l=ff[i].y;
if(!flag) //只需要判断一次就行。
{
for(j=1;j<=l;j++)
{
if(f[k].c=='N')
{
f[k].y++;
flag=check(k);
if(flag)break;
}
else if(f[k].c=='W')
{
f[k].x--;
flag=check(k);
if(flag)break;
}
else if(f[k].c=='S')
{
f[k].y--;
flag=check(k);
if(flag) break;
}
else if(f[k].c=='E')
{
f[k].x++;
flag=check(k);
if(flag)break;
}
}
}
}
}
if(!flag) printf("OK\n");
}
return 0;
}
poj -2632 Crashing Robots,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u012773338/article/details/31334905