#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define mp make_pair
const int N=300050;
const int M=2*N;
int n,m,root,ls[M],rs[M],tsz;
pii st[M];
void Build(int&c,int ss,int se){
c=++tsz;
st[c]=(ss==se?mp(ss,0):mp(n+1,0));
if(ss==se)return;
int mid=ss+se>>1;
Build(ls[c],ss,mid);
Build(rs[c],mid+1,se);
}
void Set(int c,int ss,int se,int qs,int qe,pii x){
if(ss>se||ss>qe||se<qs)return;
if(qs<=ss&&se<=qe){
if(ss-st[c].first+st[c].second<ss-x.first+x.second)st[c]=x;
return;
}
int mid=ss+se>>1;
Set(ls[c],ss,mid,qs,qe,x);
Set(rs[c],mid+1,se,qs,qe,x);
}
void Solve(int c,int ss,int se,pii mx){
if(ss-mx.first+mx.second<ss-st[c].first+st[c].second)mx=st[c];
if(ss==se){
printf("%i ",ss-mx.first+mx.second);
return;
}
int mid=ss+se>>1;
Solve(ls[c],ss,mid,mx);
Solve(rs[c],mid+1,se,mx);
}
int main(){
scanf("%i%i",&n,&m);
Build(root,1,n);
while(m--){
int l,r,x;scanf("%i%i%i",&l,&r,&x);
Set(root,1,n,l,r,{l,x});
}
Solve(root,1,n,{n+1,0});
return 0;
}
Compilation message
trading.cpp: In function 'void Build(int&, int, int)':
trading.cpp:16:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
16 | int mid=ss+se>>1;
| ~~^~~
trading.cpp: In function 'void Set(int, int, int, int, int, std::pair<int, int>)':
trading.cpp:26:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
26 | int mid=ss+se>>1;
| ~~^~~
trading.cpp: In function 'void Solve(int, int, int, std::pair<int, int>)':
trading.cpp:36:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
36 | int mid=ss+se>>1;
| ~~^~~
trading.cpp: In function 'int main()':
trading.cpp:42:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
42 | scanf("%i%i",&n,&m);
| ~~~~~^~~~~~~~~~~~~~
trading.cpp:45:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
45 | int l,r,x;scanf("%i%i%i",&l,&r,&x);
| ~~~~~^~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
2 ms |
324 KB |
Output is correct |
6 |
Correct |
2 ms |
444 KB |
Output is correct |
7 |
Correct |
111 ms |
8704 KB |
Output is correct |
8 |
Correct |
138 ms |
9760 KB |
Output is correct |
9 |
Correct |
132 ms |
10056 KB |
Output is correct |
10 |
Correct |
140 ms |
10572 KB |
Output is correct |
11 |
Correct |
157 ms |
12012 KB |
Output is correct |
12 |
Correct |
157 ms |
12108 KB |
Output is correct |
13 |
Correct |
185 ms |
12936 KB |
Output is correct |
14 |
Correct |
162 ms |
13052 KB |
Output is correct |
15 |
Correct |
187 ms |
14232 KB |
Output is correct |
16 |
Correct |
234 ms |
14588 KB |
Output is correct |
17 |
Correct |
177 ms |
14796 KB |
Output is correct |
18 |
Correct |
206 ms |
15544 KB |
Output is correct |
19 |
Correct |
204 ms |
15596 KB |
Output is correct |
20 |
Correct |
232 ms |
17288 KB |
Output is correct |