Uva---10881 Piotr's Ants(蚂蚁)
Problem D
Piotr's Ants
Time Limit: 2 seconds
"One thing is for certain: there is no stopping them;the ants will soon be here. And I, for one, welcome ournew insect overlords." |
---|
Kent Brockman
Piotr likes playing with ants. He has n of them on a horizontal pole L cm long. Each ant is facing either left or right and walks at a constant speed of 1 cm/s. When two ants bump into each other, they both turn around (instantaneously) and start walking in opposite directions. Piotr knows where each of the ants starts and which direction it is facing and wants to calculate where the ants will end up T seconds from now.
Input The first line of input gives the number of cases, N. N test cases follow. Each one starts with a line containing 3 integers: L , T and n (0 <= n <= 10000). The next n lines give the locations of the n ants (measured in cm from the left end of the pole) and the direction they are facing (L or R).
Output For each test case, output one line containing "Case #x:" followed by n lines describing the locations and directions of the n ants in the same format and order as in the input. If two or more ants are at the same location, print "Turning" instead of "L" or "R" for their direction. If an ant falls off the pole before Tseconds, print "Fell off" for that ant. Print an empty line after each test case.
Sample Input |
Sample Output |
---|---|
2 10 1 4 1 R 5 R 3 L 10 R 10 2 3 4 R 5 L 8 R |
Case #1: 2 Turning 6 R 2 Turning Fell off Case #2: 3 L 6 R 10 R |
Problemsetter: Igor Naverniouk Alternate solutions: Frank Pok Man Chu and Yury Kholondyrev
代码:
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<cstdlib>
5 #include<algorithm>
6 #include<vector>
7 using namespace std;
8 const int maxn=10005;
9 struct ants
10 {
11 int id ; //输入序号
12 int pos ; //在小木棍上的顺序
13 int status ; //状态
14 bool operator <( const ants an) const
15 {
16 return pos<an.pos;
17 }
18 }begin[maxn],end[maxn];
19
20 int order[maxn];
21
22 int main()
23 {
24 int test;
25 int T,L,n;
26 char str;
27 int a;
28 scanf("%d",&test);
29 for(int k=1;k<=test;k++)
30 {
31 printf("Case #%d:n",k);
32 scanf("%d%d%d",&L,&T,&n);
33 for(int j=0;j<n;j++)
34 {
35 scanf("%d %c",&a,&str);
36 int value=(str=='L')?-1:1;
37 begin[k]=(ants){j,a,value};
38 end[k]=(ants){0,a+T*value,value};
39 }
40 sort(begin,begin+n);
41 for(int i=0;i<n;i++)
42 order[begin[i].id]=i;
43 sort(end,end+n);
44 for(int i=0;i<n-1;i++)
45 if(end[i].pos==end[i+1].pos)
46 end[i].status=end[i+1].status=0;
47 char chastr[][10]={"L","Turning","R"};
48 for(int i=0;i<n;i++){
49 int a=order[i];
50 if(end[a].pos<0||end[a].pos>L)
51 printf("Fell offn");
52 else
53 printf("%d %sn",end[a].pos,chastr[end[a].status+1]);
54 }
55 printf("n");
56 }
57 return 0;
58 }
- FFMPEG指令
- Gitlab删库事件回顾,备份手段还停留在“原始社会”?
- ASM 翻译系列第三十二弹:自制数据抽取小工具
- WordPress集成SendCloud邮件代发,规避SMTP泄漏网站主机真实IP的风险
- ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义
- 放弃Python转向Go语言:这9大理由就够了 !(附代码)
- CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
- 利用HSTS安全协议柔性解决全站HTTPS的兼容性问题
- Nginx内容替换模块http_substitutions_filter_module及实用案例分享
- libmemcached编译安装报错解决记录
- 解决网站静态缓存后WP-PostViews插件不计数的问题
- Haproxy安装部署文档及多配置文件管理方案
- ASM 翻译系列第三十四弹:ASM磁盘组重要属性介绍
- 博客集成Hitokoto·一言经典语句功能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端模块化:CommonJS,AMD,CMD,ES6
- 那些年,我们追过的RPC
- 设计模式~装饰模式
- Linux共享库、静态库、动态库详解
- strace详解及实战
- 推荐一个比crontab更好用的东西:crongo
- Vue 自定义指令
- IDEA + Spring Boot 的三种热加载方案,看完弄懂,不用加班~
- 开篇讲--关于Kali的碎碎念
- Mysql服务器SQL模式 (官方精译)
- 如何用Prometheus和Grafana监控Kubernetes集群?
- linux实时文件事件监听--inotify
- MySQL事务原理&实战【官方精译】
- 俗话:MySQL索引
- 基于飞桨复现CVPR 2016 MCNN的过程解析:教你更精确估算人流密度