#include <cstdio>
#include <algorithm>
#include <set>
#include <utility>
using namespace std;
typedef pair<int,int> pi;
multiset<int> s;
pi ins[300005], del[300005];
int n,m;
int main(){
scanf("%d %d",&n,&m);
for (int i=0; i<m; i++) {
int s,e,x;
scanf("%d %d %d",&s,&e,&x);
ins[i] = pi(s,x-s);
del[i] = pi(e,x-s);
}
sort(ins,ins+m);
sort(del,del+m);
int p1 = 0, p2 = 0;
for (int i=1; i<=n; i++) {
int mv = p1;
while (mv < m && ins[mv].first == i) {
mv++;
}
for (int j=p1; j<mv; j++) {
s.insert(ins[j].second);
}
p1 = mv;
auto x = s.end();
if(x == s.begin()) printf("0 ");
else printf("%d ",*(--x) + i);
mv = p2;
while (mv < m && del[mv].first == i) {
mv++;
}
for (int j=p2; j<mv; j++) {
s.erase(s.find(del[j].second));
}
p2 = mv;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
5900 KB |
Output is correct |
2 |
Correct |
0 ms |
5900 KB |
Output is correct |
3 |
Correct |
0 ms |
5900 KB |
Output is correct |
4 |
Correct |
0 ms |
5900 KB |
Output is correct |
5 |
Correct |
0 ms |
5900 KB |
Output is correct |
6 |
Correct |
0 ms |
5900 KB |
Output is correct |
7 |
Correct |
156 ms |
8276 KB |
Output is correct |
8 |
Correct |
161 ms |
8012 KB |
Output is correct |
9 |
Correct |
161 ms |
9068 KB |
Output is correct |
10 |
Correct |
215 ms |
10784 KB |
Output is correct |
11 |
Correct |
200 ms |
8012 KB |
Output is correct |
12 |
Correct |
231 ms |
11180 KB |
Output is correct |
13 |
Correct |
219 ms |
8672 KB |
Output is correct |
14 |
Correct |
223 ms |
10388 KB |
Output is correct |
15 |
Correct |
251 ms |
9992 KB |
Output is correct |
16 |
Correct |
253 ms |
8936 KB |
Output is correct |
17 |
Correct |
256 ms |
10124 KB |
Output is correct |
18 |
Correct |
308 ms |
12236 KB |
Output is correct |
19 |
Correct |
196 ms |
9992 KB |
Output is correct |
20 |
Correct |
313 ms |
9860 KB |
Output is correct |