UVA 10881 Piotr's Ants
来源:互联网 发布:常熟淘宝开店 编辑:程序博客网 时间:2024/06/06 20:05
之前做过一个蚂蚁问题,不过这个题目还要记录下交换之后的蚂蚁。
思路:两个蚂蚁的相撞可以看成对穿而过。只不过是两个蚂蚁的编号换了。这样之后只要判断对穿之后
哪个蚂蚁是哪个蚂蚁就行了。
#include<stdio.h>#include<algorithm>using namespace std;const int maxn=100001;struct Node{ int id,p,d; bool operator<(const Node &c)const { return p<c.p; }} a[maxn],b[maxn];int cnt[maxn];char str[][10]= {"L","Turning","R"};int main(){ int tt,kj=1; scanf("%d",&tt); while(tt--) { int len,t,n; scanf("%d%d%d",&len,&t,&n); for(int i=0; i<n; i++) { int x,d; char s[10]; scanf("%d%s",&x,s); d=(s[0]=='L'?-1:1); b[i]=(Node) { i,x,d }; a[i]=(Node) { 0,x+t*d,d }; } sort(b,b+n); for(int i=0; i<n; i++) cnt[b[i].id]=i; sort(a,a+n); for(int i=0; i<n; i++) if(a[i].p==a[i+1].p) a[i].d=a[i+1].d=0; printf("Case #%d:\n",kj++); for(int i=0; i<n; i++) { int c2=cnt[i]; if(a[c2].p<0||a[c2].p>len) puts("Fell off"); else printf("%d %s\n",a[c2].p,str[a[c2].d+1]); } printf("\n"); } return 0;}
0 0
- UVa - 10881 - Piotr's Ants
- uva 10881 - Piotr's Ants
- Uva-10881-Piotr's Ants
- uva 10881 - Piotr's Ants
- UVa 10881 Piotr's Ants
- UVA 10881 Piotr's Ants
- Piotr's ants UVA 10881
- UVa 10881 - Piotr's Ants
- UVa 10881 Piotr's Ants
- UVA - 10881 Piotr's Ants
- uva 10881 Piotr's Ants
- UVA - 10881 Piotr's Ants
- UVa 10881 - Piotr's Ants
- UVa 10881 - Piotr's Ants
- Uva 10881 - Piotr's Ants
- UVA 10881 Piotr's Ants
- UVA 10881 - Piotr's Ants
- 【UVA】10881-Piotr's Ants
- 非MFC工程中使用MFC库
- 修改Apache的最大连接数
- inline、block、inline-block的区别
- APP适配IOS8,iPhone6和Plus截图简要说明
- RC释放回路,是怎样工作的请讲解。
- UVA 10881 Piotr's Ants
- hdu 4472 Count
- SDUT2129树结构练习——判断给定森林中有多少棵树
- 第13周上机实践项目6——体验文件操作(3-实战)
- Odoo中菜单打开时增加默认搜索条件
- 基于oracle数据库 emp表的一些练习
- 新 版 骗 分 导 论
- CentOS7.0下完美部署Solr 搜索引擎
- WebView内使用post加载url并添加header