为操作建立结构体
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1010;
struct node
{
int id, flag, t;
bool operator < (const node &k) const
{
if(t != k.t) return t < k.t;
if(flag != k.flag) return flag > k.flag; // 0取1还
return id < k.id;
}
}key[maxn * 2];
int box[maxn]; //钥匙盒子
int main()
{
int n, k, id, st, ed;
cin >> n >> k;
int index = 0;
for(int i = 0; i < n; i++)
{
box[i] = i + 1;
}
for(int i = 0; i < k; i++)
{
cin >> id >> st >> ed;
key[index++] = {id, 0, st}; //
key[index++] = {id, 1, st + ed};
}
sort(key, key + index);
for(int i = 0; i < index; i++)
{
if(key[i].flag) //还回去
{
for(int j = 0; j < n; j++)
{
if(!box[j])
{
box[j] = key[i].id;
break;
}
}
}
else
{
for(int j = 0; j < n; j++)
{
if(box[j] == key[i].id)
{
box[j] = 0;
break;
}
}
}
}
for(int i = 0; i < n; i++)
{
cout << box[i] << " ";
}
return 0;
}