保卫家园
解题思路
1、将结构体数组 num 存储数据并按 s 的值从小到大排序。
struct node{
int s, t;
}num[1000010];
bool cmp(node a, node b){
return a.s<b.s;
}
sort(num, num+n, cmp);
2、 multiset 容器
利用 multiset 容器 dw 对已入伍的队员退伍时间进行从小到大的维护。
由于队伍一定可以入伍 k 个队员,初始化已入队人数 cnt = k 并将已入伍的队员退伍时间插入 dw。
multiset <int> dw;
for(int i=0; i<k; i++)
dw.insert(num[i].t);
3、不断更新队伍中的队员
①、判断能否将旧队员退役,新队员加入。
②、判断能否将队伍中最晚退役的队员替换成较早退役的队员。
multiset <int> :: iterator it;
fo