#include <bits/stdc++.h>
using namespace std;
int N,K;
int key[2010] = {0};
pair<int,int>startT[2010],endT[2010];
pair<pair<int,bool>,int>a[2010];
set<int>st;
int j = 0,stime = 0,etime = 0;
int cmp(pair<pair<int,bool>,int>&a,pair<pair<int,bool>,int>&b){
if(a.second == b.second)
{
if(a.first.second == b.first.second)
return a.first.first < b.first.first;
else
return a.first.second < b.first.second;
}
return a.second < b.second;
}
int main() {
cin>>N>>K;
for (int i = 1; i < N + 1; ++i) key[i] = i;
int w,s,c;
for (int i = 0; i < K; ++i,++j) {
cin>>w>>s>>c;
a[j].first.first = w; a[j].first.second = true; a[j].second = s;
a[++j].first.first = w; a[j].first.second = false; a[j].second = s + c;
st.insert(s); st.insert(s+c);
}
sort(a+0,a+j,cmp);
for (set<int>::iterator it = st.begin(); it != st.end(); it++) {
for (int i = 0; i < j; ++i) {
if(*it == a[i].second){
if (a[i].first.second == true){
startT[stime].first = a[i].first.first;
startT[stime++].second = a[i].second;
} else{
endT[etime].first = a[i].first.first;
endT[etime++].second = a[i].second;
}
}
}
for (int i = 0; i < etime; ++i) {
for (int k = 1; k < N+1; ++k) {
if(key[k] == 0){
key[k] = endT[i].first;
break;
}
}
}
for (int i = 0; i < stime; ++i) {
for (int k = 1; k < N+1; ++k) {
if(key[k] == startT[i].first) {
key[k] = 0;
break;
}
}
}
etime = 0;
stime = 0;
}
for (int i = 1; i < N+1; ++i) cout<<key[i]<<" ";
return 0;
}
csp公共钥匙盒
最新推荐文章于 2024-03-15 15:18:18 发布