【问题描述】

有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。
  钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。
  每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其取走,而不会移动其他钥匙。每次还钥匙的时候,还钥匙的老师会找到最左边的空的挂钩,将钥匙挂在这个挂钩上。如果有多位老师还钥匙,则他们按钥匙编号从小到大的顺序还。如果同一时刻既有老师还钥匙又有老师取钥匙,则老师们会先将钥匙全还回去再取出。
  今天开始的时候钥匙是按编号从小到大的顺序放在钥匙盒里的。有K位老师要上课,给出每位老师所需要的钥匙、开始上课的时间和上课的时长,假设下课时间就是还钥匙时间,请问最终钥匙盒里面钥匙的顺序是怎样的?

【输入形式】

输入的第一行包含两个整数NK
  接下来K行,每行三个整数wsc,分别表示一位老师要使用的钥匙编号、开始上课的时间和上课的时长。可能有多位老师使用同一把钥匙,但是老师使用钥匙的时间不会重叠。
  保证输入数据满足输入格式,你不用检查数据合法性。

【输出形式】

输出一行,包含N个整数,相邻整数间用一个空格分隔,依次表示每个挂钩上挂的钥匙编号。

【样例输入1】

5 2
4 3 3
2 2 7

【样例输出1】

1 4 3 2 5

【样例输入2】

5 7
1 1 14
3 3 12
1 15 12
2 7 20
3 18 12
4 21 19
5 30 9

【样例输出2】

1 2 3 5 4

【样例1说明】

第一位老师从时刻3开始使用4号教室的钥匙,使用3单位时间,所以在时刻6还钥匙。第二位老师从时刻2开始使用钥匙,使用7单位时间,所以在时刻9还钥匙。
  每个关键时刻后的钥匙状态如下(X表示空):
  时刻2后为1X345;
  时刻3后为1X3X5;
  时刻6后为143X5;
  时刻9后为14325。

【评分标准】

#include<bits/stdc++.h>
using namespace std;
class teacher{public:int w;int start;int c;int end;
};
bool cmp1(teacher x,teacher y)
{return x.start<y.start;
}
bool cmp2(teacher x,teacher y)
{return x.end>y.end;
}
bool cmp3(teacher x,teacher y)
{return x.w<y.w;
}
int main()
{int N,K;cin>>N>>K;int arr[N];//挂钩 for(int i=0;i<N;i++){arr[i]=i+1;//先按照123456的顺序排好 }teacher per[K];for(int i=0;i<K;i++){cin>>per[i].w>>per[i].start>>per[i].c;per[i].end=per[i].start+per[i].c;}sort(per,per+K,cmp2);int END=per[0].end;sort(per,per+K,cmp1);//按照开始时间顺序排好int START=per[0].start;for(int time=START;time<=END;time++)//时间一分一秒地过去... {sort(per,per+K,cmp3);for(int i=0;i<K;i++)//先还 ,别急,一个一个还嘛 {if(per[i].end==time){for(int j=0;j<N;j++){if(arr[j]==0){arr[j]=per[i].w;break;}}       } }//再取for(int i=0;i<K;i++){if(per[i].start==time){for(int j=0;j<N;j++){if(arr[j]==per[i].w){arr[j]=0;}}}} }for(int i=0;i<N;i++){cout<<arr[i]<<" ";}system("pause");return 0;
}

结构体调试是真的烦人

想看具体数据还得一次次点开看,跟俄罗斯套娃似的

而且如果有sort的话调试每次还得跑一遍sort那几千行代码,调的我都快睡着了

结构体 7.公共钥匙盒相关推荐

  1. 公共钥匙盒(C++结构体)

    公共钥匙盒(C++结构体) [问题描述] 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门, ...

  2. CSP认证201709-2 公共钥匙盒[C++题解]:结构体、排序、枚举

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 采用结构体来存每个操作,保存啥呢?三个成员:钥匙id:操作的类型:1表示还钥匙,0表示取钥匙:操作的时间tm: 然后结构体内部排序, ...

  3. 公共钥匙盒(排序CCF)

    问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...

  4. 【CCF】201709-2公共钥匙盒

    试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带 ...

  5. CCF 模拟题,公共钥匙盒

    题目描述: 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒 ...

  6. 【CCF】公共钥匙盒

    试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里, ...

  7. csp试题2:公共钥匙盒

    csp试题2:公共钥匙盒 题目 分析 代码 总结 题目 问题描述       有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙 ...

  8. CCF-201709-2(公共钥匙盒)

    一:问题 1.问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙 ...

  9. CCF 201709-2 公共钥匙盒

    试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥 ...

最新文章

  1. ARE YOU THE ONE?
  2. 简单的错觉画_一看就错?眼睛厉害还是大神画的厉害!
  3. 2018年计算机应用基础作业,2018年计算机应用基础作业二答案.doc
  4. python torch exp_Python:PyTorch 保存和加载训练过的网络 (八十)
  5. 工厂设计模式——简单工厂模式——未完待续
  6. php u6536编码转,详谈PHP编码转换问题
  7. PHP学习记录之会话处理(二)
  8. 【BZOJ2756】奇怪的游戏,网络流判断答案
  9. php怎么把日志推送过去_实践 | 基于Flink的用户行为日志分析系统
  10. JQuery处理元素尺寸和浏览器窗口尺寸
  11. android手机 ipad 同屏,iphone和ipad
  12. c语言文学研究助手报告,文学研究助手数据结构报告
  13. VMware虚拟机安装Win10教程
  14. Qt Creator vs2022 构建 Disney BRDF Explorer 项目
  15. twosum 两数之和 C++实现 java实现
  16. [MRI] 核磁共振T1和T2图像
  17. 不要用PS啦,python+opencv代码给证件照换底色
  18. 导入excel 文件解析,一行数据,有一列分两行显示,解析时如何 合为一行?
  19. 为什么每次在机器学习中获得不同的结果?
  20. WPF 使用 Direct2D1 画图 绘制基本图形

热门文章

  1. 二元运算符重载 must take either zero or one argument
  2. 循环遍历及函数基础知识
  3. MATLAB一直显示初始化的解决方法
  4. 2023年苹果IOS开发者证书申请(已实测准确)
  5. 机器学习-样本不均衡现象
  6. 5G全网通工业路由器里的5G全网通具体是什么定义,5G工业路由器如何选择
  7. 2020年重庆区块链论坛,大石化新区与时俱进
  8. 如何屏蔽网站不需要的蜘蛛
  9. This primary key of “id“ is primitive !不建议如此请使用包装类 in Class
  10. 有关channel的相关知识(2)