poj1852 Ants (模拟)
2015-12-13 14:14
267 查看
Ants
Description
An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in opposite directions. We know
the original positions of ants on the pole, unfortunately, we do not know the directions in which the ants are walking. Your task is to compute the earliest and the latest possible times needed for all ants to fall off the pole.
Input
The first line of input contains one integer giving the number of cases that follow. The data for each case start with two integer numbers: the length of the pole (in cm) and n, the number of ants residing on the pole. These two numbers are followed by n integers
giving the position of each ant on the pole as the distance measured from the left end of the pole, in no particular order. All input integers are not bigger than 1000000 and they are separated by whitespace.
Output
For each case of input, output two numbers separated by a single space. The first number is the earliest possible time when all ants fall off the pole (if the directions of their walks are chosen appropriately) and the second number is the latest possible such
time.
Sample Input
Sample Output
Source
Waterloo local 2004.09.19
解析:蚂蚁的速度都是一样的,那么:
最短时间:蚂蚁向离自己最近的那一端点爬过去
最长时间:两个蚂蚁相遇,各自反向爬回去,可以看成:两个蚂蚁相遇,交错而过。那么最长时间即为:向着最远端点爬过去的时间。
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
freopen("1.in","r",stdin);
int t,l,n,i,j,ans1,ans2;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&l,&n);
ans1=ans2=0;
for(i=1;i<=n;i++)
{
scanf("%d",&j);
ans1=max(ans1,min(j,l-j));
ans2=max(ans2,max(j,l-j));
}
printf("%d %d\n",ans1,ans2);
}
return 0;
}
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 12810 | Accepted: 5606 |
An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in opposite directions. We know
the original positions of ants on the pole, unfortunately, we do not know the directions in which the ants are walking. Your task is to compute the earliest and the latest possible times needed for all ants to fall off the pole.
Input
The first line of input contains one integer giving the number of cases that follow. The data for each case start with two integer numbers: the length of the pole (in cm) and n, the number of ants residing on the pole. These two numbers are followed by n integers
giving the position of each ant on the pole as the distance measured from the left end of the pole, in no particular order. All input integers are not bigger than 1000000 and they are separated by whitespace.
Output
For each case of input, output two numbers separated by a single space. The first number is the earliest possible time when all ants fall off the pole (if the directions of their walks are chosen appropriately) and the second number is the latest possible such
time.
Sample Input
2 10 3 2 6 7 214 7 11 12 7 13 176 23 191
Sample Output
4 8 38 207
Source
Waterloo local 2004.09.19
解析:蚂蚁的速度都是一样的,那么:
最短时间:蚂蚁向离自己最近的那一端点爬过去
最长时间:两个蚂蚁相遇,各自反向爬回去,可以看成:两个蚂蚁相遇,交错而过。那么最长时间即为:向着最远端点爬过去的时间。
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
freopen("1.in","r",stdin);
int t,l,n,i,j,ans1,ans2;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&l,&n);
ans1=ans2=0;
for(i=1;i<=n;i++)
{
scanf("%d",&j);
ans1=max(ans1,min(j,l-j));
ans2=max(ans2,max(j,l-j));
}
printf("%d %d\n",ans1,ans2);
}
return 0;
}
相关文章推荐
- PAT程序设计练习——甲级1001(标准格式化数字)
- 白盒测试技术含量不一定比黑盒测试高
- JSP验证码动态生成方法
- start booting from usb device,U盘安装ubuntu无法引导系统
- Android中Animation动画的介绍及用法详解
- linux(fedora) 下dvwa 建筑环境
- eclipse机器硬重启后package和project视图中看不见工作区间中的工程
- 大话设计模式之策略模式(结合简单工厂),程序完善过程蕴含智慧
- leetcode -- Permutation Sequence -- 重点
- 下列代码可以将十进制转换为二进制、八进制和十六进制
- 程序员必须了解的内存知识
- Android UncaughtExceptionHandler捕获Crash
- 微信中 - 发现 - 界面的实现
- c++ 初始化 http://www.nowcoder.com/test/question/done?tid=2198842&qid=25454#summary
- Android ListView网络加载图片之内存缓存
- C/C++ 之 restrict关键字
- 设计模式C#实现(十二)——装饰模式
- 结合OPENSIFT源码详解SIFT算法
- 用哈希法组织关键字 2
- 对list排序的代码优化