poj 2632 Crashing Robots
来源:互联网 发布:劳丽诗的淘宝店 编辑:程序博客网 时间:2024/05/17 01:15
坑了,没想的太周到,WA好久,
就两个地方想错了。。
一。对撞在撞墙之前,
二。对撞的是最靠近要动的这个的,
写的是按编号顺序判断。。。心碎了
模拟太坑爹。。。
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;char qq[105];int a,s[105][2],b,c,t[3];int d,e;int k,l,h,m,n;void show(int q,char w,int e){ h=0; int nb=1002; if(w=='F') { if(qq[q]=='E') {s[q][0]+=e; if(s[q][0]>b) {h=1;k=q;} for(int i=1;i<=m;i++) { if(q==i) continue; if(s[q][1]==s[i][1]&&s[i][0]<=s[q][0]&&s[q][0]-e<s[i][0]) { int uu=e-s[q][0]+s[i][0]; if(uu<nb) { nb=uu; k=q;l=i; t[1]=1;} } } } if(qq[q]=='W') { s[q][0]-=e; if(s[q][0]<=0) {h=1;k=q;} for(int i=1;i<=m;i++) { if(q==i) continue; if(s[q][1]==s[i][1]&&s[i][0]>=s[q][0]&&s[q][0]+e>s[i][0]) {int uu=e+s[q][0]-s[i][0]; if(uu<nb) { nb=uu; k=q;l=i; t[1]=1;} } } } if(qq[q]=='S') { s[q][1]-=e; if(s[q][1]<=0) { h=1;k=q;} for(int i=1;i<=m;i++) { if(q==i) continue; if(s[q][0]==s[i][0]&&s[i][1]>=s[q][1]&&s[q][1]+e>s[i][1]) { int uu=e+s[q][1]-s[i][1]; if(uu<nb) { nb=uu; k=q;l=i; t[1]=1;} } } } if(qq[q]=='N') { s[q][1]+=e; if(s[q][1]>c) {h=1;k=q;} for(int i=1;i<=m;i++) { if(q==i) continue; if(s[q][0]==s[i][0]&&s[i][1]<=s[q][1]&&s[q][1]-e<s[i][1]) { int uu=e-s[q][1]+s[i][1]; if(uu<nb) { nb=uu; k=q;l=i; t[1]=1;} } } } if(h==1) {t[0]=1;} } int u=0,p=0; if(w=='L') u=e%4; if(w=='R') p=e%4; if(u==1||p==3) { if(qq[q]=='E') { qq[q]='N'; } else if(qq[q]=='W') { qq[q]='S'; } else if(qq[q]=='S') { qq[q]='E'; } else if(qq[q]=='N') { qq[q]='W'; } } if(u==2||p==2) { if(qq[q]=='E') { qq[q]='W'; } else if(qq[q]=='W') { qq[q]='E'; } else if(qq[q]=='S') { qq[q]='N'; } else if(qq[q]=='N') { qq[q]='S'; } } if(u==3||p==1) { if(qq[q]=='E') { qq[q]='S'; } else if(qq[q]=='W') { qq[q]='N'; } else if(qq[q]=='S') { qq[q]='W'; } else if(qq[q]=='N') { qq[q]='E'; } }}int main(){ scanf("%d",&a); while(a--) { memset(t,0,sizeof(t)); memset(s,0,sizeof(s)); scanf("%d %d",&b,&c); char r; k=0,l=0; scanf("%d %d",&m,&n); for(int i=1;i<=m;i++) { scanf("%d %d %c",&d,&e,&r); s[i][0]=d; s[i][1]=e; qq[i]=r; //printf("%d\n",s[i][1]); } for(int i=1;i<=n;i++) { scanf("%d %c %d",&d,&r,&e); if(t[0]!=0||t[1]!=0) continue; show(d,r,e); } if(t[1]==1) printf("Robot %d crashes into robot %d\n",k,l); else {if(t[0]==1) printf("Robot %d crashes into the wall\n",k); else printf("OK\n"); } } return 0;}
0 0
- Poj 2632 Crashing Robots
- poj 2632 Crashing Robots
- poj 2632 Crashing Robots
- poj-2632-Crashing Robots
- POJ 2632 Crashing Robots
- POJ 2632 Crashing Robots
- POJ 2632 Crashing Robots
- POJ 2632 Crashing Robots
- POJ-2632-Crashing Robots
- POJ 2632 Crashing Robots
- POJ 2632 Crashing Robots
- POJ 2632 Crashing Robots
- poj 2632 Crashing Robots
- POJ 2632 Crashing Robots
- poj -2632 Crashing Robots
- poj 2632 Crashing Robots
- POJ 2632 Crashing Robots
- poj 2632 Crashing Robots
- 3-类、对象和方法
- zoj1163 The Staircases
- 特殊浮点数1.#IND 1.#INF的判断 (
- 【FTP工具】8UFTP工具是我自己比较经常用的,推荐。
- crm操作约会实体
- poj 2632 Crashing Robots
- 生活中的那些有趣的的灵感小创意,设计师们造吗?
- php中第一个注册界面
- Python2.7 学习笔记1-列表
- C#中Hashtable
- Kinect相关技术规格
- Google高级搜索
- HTML中调用JavaScript的几种情况和规范写法
- POJ 3277线段树 离线+离散