(1)题目描述
(2)算法思想
三个需要注意顺序的地方:
- 取钥匙时间先后;
- 同一时间先还后取;
- 同一时间还序号小者优先。
根据这三个原则进行模拟即可,我在此处先按钥匙编号从小到大进行了排序,在同一时间还钥匙时即不需额外控制序号小者优先的原则。
(3)代码实现
#include<iostream>
#include<algorithm>
using namespace std;
struct teacher {
int id;
int end;
int begin;
};
bool cmp(teacher t1, teacher t2) {
return t1.id<t2.id;
}
int main() {
int N,K;
cin>>N>&