uva10881-虫虫爬杆
来源:互联网 发布:怎样看待网络语言暴力 编辑:程序博客网 时间:2024/06/08 06:28
这一题先看了大白书上的思想就自己敲了代码,也找了很多的数据,都可以,可是交上去就是不过,之后看了大白书上的代码和我的想法是一样的,啊郁闷,把大白书书上的代码敲上去,结果verdict是空的,更郁闷!!
先写我的代码和找到的数据:
4
10 1 4
1 R
5 R
3 L
10 R
10 2 3
4 R
5 L
8 R
10 2 4
1 R
3 R
5 L
7 L
10 4 4
1 R
4 L
5 L
7 L
结果是:
Case #1:
2 Turning
6 R
2 Turning
Fell off
Case #2:
3 L
6 R
10 R
Case #3:
3 Turning
3 Turning
5 Turning
5 Turning
Case #4:
0 L
1 L
3 L
5 R
我的代码是:
#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>using namespace std;const int maxn=10000+5;struct node{ int i,pos,l;}ant[maxn];int p[maxn];bool cmp1(node a,node b){ if(abs(a.pos)==abs(b.pos))return a.i<b.i; return abs(a.pos)<abs(b.pos);}int main(){ freopen("int.txt","r",stdin); freopen("out.txt","w",stdout); int n,l,t,T,cas=1; char op; scanf("%d",&T); while(T--){ printf("Case #%d:\n",cas++); scanf("%d%d%d",&l,&t,&n); for(int i=0;i<n;i++){ ant[i].i=i; scanf("%d %c",&ant[i].pos,&op); if(op=='L'){ ant[i].pos=-1*ant[i].pos; ant[i].l=1; } else ant[i].l=0; } sort(ant,ant+n,cmp1); for(int i=0;i<n;i++){ p[ant[i].i]=i; } for(int i=0;i<n;i++){ ant[i].pos+=t; } sort(ant,ant+n,cmp1); for(int i=0;i<n;i++){ if(!(ant[p[i]].l)&&ant[p[i]].pos<=l&&ant[p[i]].pos>=0){ printf("%d ",ant[p[i]].pos); bool flag=false; if(p[i]&&ant[p[i]].pos==abs(ant[p[i]-1].pos))flag=true; else if(p[i]!=n-1&&ant[p[i]].pos==abs(ant[p[i]+1].pos))flag=true; if(flag)printf("Turning\n"); else printf("R\n"); } else if(!(ant[p[i]].l))printf("Fell off\n"); else if(ant[p[i]].l&&ant[p[i]].pos<=0){ printf("%d ",-1*ant[p[i]].pos); bool flag=false; if(p[i]!=n-1&&abs(ant[p[i]].pos)==abs(ant[p[i]+1].pos))flag=true; else if(p[i]!=0&&abs(ant[p[i]].pos)==abs(ant[p[i]-1].pos))flag=true; if(flag)printf("Turning\n"); else printf("L\n"); } else if(ant[p[i]].l)printf("Fell off\n"); } printf("\n"); } return 0;}
大白书上的代码是:
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=1e4+5;struct Ant{ int id,p,d; bool operator < (const Ant& a)const { return p<a.p; }}before[maxn],after[maxn];const char dir[][10]={"L","Turning","R"};int order[maxn];int main(){ int k; //freopen("int.txt","r",stdin); scanf("%d",&k); for(int cas=1;cas<=k;cas++){ int L,T,n; printf("Case #%d:\n",cas); scanf("%d%d%d",&L,&T,&n); for(int i=0;i<n;i++){ int p,d; char op; scanf("%d %c",&p,&op); d=(op=='L'?-1:1); before[i]=(Ant){i,p,d}; after[i]=(Ant){0,p+T*d,d}; } sort(before,before+n); for(int i=0;i<n;i++){ order[before[i].id]=i; } sort(after,after+n); for(int i=0;i<n-1;i++){ if(after[i].p==after[i+1].p)after[i].d=after[i+1].d=0; } for(int i=0;i<n;i++){ int a=order[i]; if(after[a].p<0||after[a].p>L)printf("Fell off\n"); else printf("%d %s\n",after[a].p,dir[after[a].d+1]); } printf("\n"); } return 0;}
0 0
- uva10881-虫虫爬杆
- UVA10881:
- uva10881
- UVa10881
- uva10881
- Uva10881
- UVa10881
- uva10881
- UVa10881
- UVA10881
- UVA10881蚂蚁
- uva10881 ants
- UVA10881蚂蚁
- UVA10881 Piotr's Ants
- UVA10881 Piotr's Ants
- 蚂蚁爬杆+uva10881
- Uva10881 Piotr's Ants
- uva10881 Piotr's Ants
- leetcode-Merge Intervals
- 利用Intent切换Activity
- [Note]港大-软件工程(Software Engineering)复习笔记
- Android内存优化
- Redis介绍及常用命令
- uva10881-虫虫爬杆
- Android中shape的使用
- 工作日志:201405
- 使用MySql数据库基准压力测试工具mysqlslap重放sql语句
- Django用户认证系统 authentication system
- android framework层的一些修改
- adboost
- 无论怎样,总有人记住你
- kill 0 判断进程存活