Description

幽会计划

二哥如今在TNCM机场做空管。二哥不幸被分配到了进近席,进近席位要负责处理所有准备降落在机场的飞机,让他们平稳地落在跑道上。飞机降落一般遵循五边进近航图,不过在这道题目中你不需要关心什么是五边进近,只要看下面这张图。

一架飞机总是从下滑道入口(A点)开始接受二哥管制,直到降落成功(B点)。飞机不会是同一型号的,速度也不一样,所以从A点到B点所需的时间不同。二哥得小心一点,不能把事情搞砸了:(1)下滑道内不允许飞机互相超越;(2)一架飞机降落之后,至少要等待一段时间才允许下一架飞机降落(即到达B的时间间隔要大于等于一个值)。

二哥是个聪明的人,他写了一个程序来帮他控制所有飞机,然后他就可以喝茶去了。二哥的策略是:通过拒绝某些飞机进入下滑道,来保证下滑道上的飞机永远不会距离太近。也就是说,只要飞机被允许进入下滑道,就可以安全降落。

每当一架飞机来到下滑道的入口时,二哥的程序就会判断:如果允许这架飞机进入下滑道,它能否安全降落。如果能安全降落,二哥就允许他进入下滑道,否则二哥会立即要求这架飞机在A点复飞。

原则上,两架飞机不应该同时出现在A点,但这种情况显然可能出现。如果真的出现了这种情况,则说明空管局这次彻底把事情搞砸,二哥的策略显然可能是诱因。

简单来说,在未来的一段时间内,共有N架飞机要降落,他们会在Ti时刻首次出现在下滑道入口,他们从A点到B点需要的时间为Ui。如果他们被二哥命令在A点复飞,他们会在Gi分钟后再次出现在下滑道入口。飞机的安全降落间隔是S。

现在,二哥的女朋友找到你,请你计算一下每架飞机会在第几分钟完成降落。这样她可以估算出二哥什么时候下班,以便瞒着二哥去和情人去幽会。

Input Format

第一行有三个正整数N、MAX、S,表示有多少飞机,最长模拟的时间,以及安全降落时间间隔。

之后有N行,每行有三个非负整数,依次为Ti、Ui、Gi,分别表示第i架飞机的首次到达时间、从A点到B点耗时、复飞耗时。

N≤1000

MAX≤1000000 S≤1000 Ti≤1000000 ,Ui≤1000 ,Gi≤1000

Output Format

假设在MAX时刻之前([0..MAX-1]),有飞机同时出现在了下滑道口,则输出“CHANGE BOYFRIEND”,因为飞机撞了,三哥估计要下岗了,她可以换一个男朋友了。

假设在MAX时刻之前没有飞机相撞,但模拟结束后仍然有飞机没有降落,则输出一行“GO DATING”,以表示三哥的女朋友可以放心大胆地幽会去了。

否则输出N行,每行一个整数,表示第i架飞机最终降落的时刻。

Sample Input

4 20 2
0 2 5
1 2 1
5 2 1
6 10 10

Sample Output

2
4
7
16

Sample Input

3 10 2
0 2 5
1 2 3
4 1 1

Sample Output

CHANGE BOYFRIEND

样例解释

分析:0时刻,第一架飞机到达A,二哥允许他进入下滑道,在第2时刻降落。1时刻,第二架飞机到达A,二哥要求他复飞,因为降落间距小于安全标准。2时刻,第二架飞机复飞后再次回到A,二哥允许他进入下滑道,在第4时刻降落。5时刻,第三架飞机到达A,二哥允许他进入下滑道,在第7时刻降落6时刻,第四架飞机到达A,二哥允许他降落,在第16时刻降落。分析:在4时刻,第二架飞机和第三架飞机会相撞。

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>using namespace std;class Fly{
public:int id,in,out,repStay;Fly(int fid,int a, int b, int c){id = fid;in = a;out = b;repStay = c;}Fly(){};
};int main()
{int n,Max,s,N;cin>>n>>Max>>s;N = n;map<int, Fly> fly;int fid = 0;while(n-->0){int in,out,repStay;cin>>in>>out>>repStay;fly[in] = Fly(fid,in,out,repStay);fid++;}int res[N];map<int, Fly>::iterator iter = fly.begin();int lastLoad = iter->second.in + iter->second.out;iter++;res[0] = lastLoad;while(iter != fly.end()){if(iter->second.in>=Max){cout<<"GO DATING";return 0;}int achi = iter->second.in + iter->second.out;if(achi-lastLoad>=s){res[iter->second.id] = achi;lastLoad = achi;}else{int n_in = iter->second.in + iter->second.repStay;if(fly.count(n_in)>0){cout<<"CHANGE BOYFRIEND";return 0;}else{fly[n_in] = Fly(iter->second.id, n_in, iter->second.out, iter->second.repStay);}}iter++;}for(int i=0;i<N;i++)cout<<res[i]<<" "<<endl;return 0;
}


转载于:https://www.cnblogs.com/bernieloveslife/p/7890136.html

1027. 戴绿帽子的空管相关推荐

  1. [A Dangerous Maze LightOJ - 1027 ][概率题]

    A Dangerous Maze LightOJ - 1027 题目大意:就是你有nnn个门每次你都会随机选一个门,这个门对应得数值如果是负的那么你将会在aia_iai​的时间后回到原来位置,如果是正 ...

  2. LeetCode 1027. Longest Arithmetic Sequence--笔试题--C++解法

    LeetCode 1027. Longest Arithmetic Sequence–笔试题–C++解法 LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专 ...

  3. ZJU PAT 1027 Colors in Mars

    http://pat.zju.edu.cn/contests/pat-practise/1027 继续无聊. 数制转换一定不要忘了0. 1 #include <stdio.h> 2 #in ...

  4. PAT甲级1027 Colors in Mars :[C++题解]进制位

    文章目录 题目分析 题目链接 题目分析 就是十进制数转化成13进制,然后数字转化成字符. get函数用来将数字转化成字符. 如果 一位数 就是return x +'0'如果 大于9 就是 return ...

  5. PAT 甲级 1027 Colors in Mars

    1027. Colors in Mars (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue People ...

  6. 1027. 打印沙漏(20)

    1027. 打印沙漏(20) C++AC代码(更新于2017年4月9日) 解题思路,注意到行数与第一行和最后一行字符数都是相等的,根据等差数列找关系 #include <iostream> ...

  7. 51nod 1027 大数乘法

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ...

  8. 51 Nod 1027 大数乘法【Java大数乱搞】

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 ...

  9. LightOJ - 1027 A Dangerous Maze —— 期望

    题目链接:https://vjudge.net/problem/LightOJ-1027 1027 - A Dangerous Maze     PDF (English) Statistics Fo ...

最新文章

  1. Tech Ed上Windows 7值得关注的课程
  2. AtCoder Grand Contest 013D: Piling Up 题解
  3. java通过Access_JDBC30读取access数据库时无法获取最新插入的记录
  4. 【常用】数学符号及读法大全
  5. 将Spring集成到旧版应用程序中
  6. Spring boot Mybatis 整合(注解版)
  7. [你必须知道的.NET]第三十回:.NET十年(下)
  8. 关于OAuth2.0的文章收集
  9. rhel源更换为centos源
  10. JAVA-数据库之MySQL与JDBC驱动下载与安装
  11. 正规矩阵 酉矩阵 对角矩阵
  12. wlan mac地址 network interface IPv6 IPv4
  13. 【开箱即用】HTML5教程
  14. IT职场求生法则(3)- 部门经理及副总适用法则
  15. 优秀的程序员都在关注「沉默王三」公众号
  16. HDU 4685. Prince and Princess
  17. 【人工智能在图像识别技术上应用】
  18. debian7配置apache+mysql+php
  19. 格子玻尔兹曼机(Lattice Boltzmann Method)系列3:LBM在不可压缩流动下的边界条件算法
  20. 我的PPT可以“吐泡泡”!你的可以吗?1分钟教会你怎么做

热门文章

  1. kotlin设置CORS跨域资源共享,java设置允许跨域,服务端如何设置 springboot中设置跨域资源共享
  2. CentOS Docker安装配置部署Golang web helloworld
  3. 2022-2028年中国分离膜外壳行业市场调查研究及投资前景预测报告
  4. 2022-2028年中国操作系统行业深度调研及投资前景预测报告
  5. learning to rank_排序
  6. NVIDIA数据中心深度学习产品性能
  7. 人脸照片自动生成游戏角色_ICCV2019论文解析
  8. Python 爬虫框架Scrapy安装汇总
  9. 如何自学php框架,如何学习php框架
  10. php mongodb execute,php简单操作mongodb