题目传送门

独木桥

题目背景

战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳 1 个人通过。假如有 2 个人相向而行在桥上相遇,那么他们 2 个人将无法绕过对方,只能有 1 个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。

题目描述

突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须撤下独木桥。独木桥的长度为 L ,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为 1 ,但一个士兵某一时刻来到了坐标为 0 或L+1 的位置,他就离开了独木桥。

每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,于是就分别转身,继续行走。转身不需要任何的时间。

由于先前的愤怒,你已不能控制你的士兵。甚至,你连每个士兵初始面对的方向都不知道。因此,你想要知道你的部队最少需要多少时间就可能全部撤离独木桥。另外,总部也在安排阻拦敌人的进攻,因此你还需要知道你的部队最多需要多少时间才能全部撤离独木桥。

输入输出格式

输入格式:

第一行:一个整数 L ,表示独木桥的长度。桥上的坐标为 1 … L

第二行:一个整数 N ,表示初始时留在桥上的士兵数目

第三行:有 N 个整数,分别表示每个士兵的初始坐标。

输出格式:

只有一行,输出 2 个整数,分别表示部队撤离独木桥的最小时间和最大时间。 2 个整数由一个空格符分开。

输入输出样例

输入样例#1: 复制

4
2
1 3
输出样例#1: 复制

2 4

说明

初始时,没有两个士兵同在一个坐标。

数据范围 N≤L≤5000 。


  分析:

  入门难度的数学题居然放在提高试炼场,洛谷的题目评判水准真的不敢恭维。可以,这很提高。

  实际上就是经典的独木桥问题稍稍变了一下,很容易想到,实际上转不转弯都一样的,于是这道题就可以被转化为这样:

  求所有人中过桥最短时间的最大值和过桥最长时间的最大值。

  So,这题就被water掉了。

  Code:

#include<bits/stdc++.h>
using namespace std;
int l,n,a[],maxx,minn;
int main()
{
ios::sync_with_stdio(false);
cin>>l>>n;
for(int i=;i<=n;i++){
cin>>a[i];
minn=max(minn,min(a[i],l+-a[i]));
maxx=max(maxx,max(a[i],l+-a[i]));}
cout<<minn<<" "<<maxx<<endl;
return ;
}

最新文章

  1. Dos命令查看端口占用及关闭进程
  2. final评论II
  3. 【JAVA基本数据类型包装类】
  4. 常用dom对象
  5. ASP.NET WebAPI 11 参数验证
  6. 寻找idea...
  7. 分布式内存对象缓存系统Memcached-概述
  8. live555源码研究(一)------live555MediaServer的启动过程和基本类图
  9. 【转】图文并茂 Ubuntu使用Thunderbird方法指南
  10. CentOS Linux 语言环境设置
  11. U3D音频系统
  12. CKEditor 案例
  13. webkit图片滤镜
  14. Ionic3学习笔记(三)禁止横屏
  15. UIView圆角设置
  16. RE模块错误已解决.
  17. 将二维list某列组成新的list
  18. ArcGIS 栅格数据教程
  19. Vue + Element UI 实现权限管理系统
  20. myeclipse使用小技巧

热门文章

  1. 确保web安全的https、确认访问用户身份的认证(第七章、第八章)
  2. PowerDesigner16 设置导出sql文件的编码
  3. sqlserver 个人整理
  4. 「6月雅礼集训 2017 Day4」qyh(bzoj2687 交与并)
  5. 「6月雅礼集训 2017 Day11」tree
  6. 【BZOJ】1455 罗马游戏
  7. bzoj 1503 平衡树
  8. bugku逗号过滤注入
  9. mysql之安装和配置(一)
  10. centos 快捷键