#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
#include<bits/stdc++.h>
#define space <<' '<<
#define endl '\n'
#define inf 1e14
#define F first
#define S second
#define PB push_back
#define PF push_front
#define md(a) ((a+mod)%mod)
#define MP(a,b) make_pair(a,b)
#define MT(a,b,c) make_tuple(a,b,c)
typedef long long ll;
using namespace std;
template<typename t> using heap=
priority_queue<t,vector<t>,greater<t>>;
const ll en = 1e9;
const ll mx = 8e6+5;
ll lzy[mx],seg[mx],c1[mx],c2[mx],cnt=1;
void make_c(int l,int r,int u){
if(l==r) return;
c1[u]=++cnt,c2[u]=++cnt;
}
void push(int l,int r,int u){
if(l==r)
seg[u]=max(seg[u],lzy[u]);
else
if(lzy[u]==1){
seg[u]=r-l+1;
lzy[c1[u]]=1,
lzy[c2[u]]=1;
}
lzy[u]=0;
}
void upd(ll L,ll R,ll u=1,ll l=1,ll r=en){
if(c1[u]==0||c2[u]==0)
make_c(l,r,u);
push(l,r,u);
if(L<=l&&r<=R)
lzy[u]=1,
push(l,r,u);
else if(!(R<l||r<L)){
push(l,r,u);
int m=(l+r)/2;
upd(L,R,c1[u],l,m);
upd(L,R,c2[u],m+1,r);
seg[u]=seg[c1[u]]+seg[c2[u]];
}
}
ll red(ll L,ll R,ll u=1,ll l=1,ll r=en){
if(c1[u]==0||c2[u]==0)
make_c(l,r,u);
push(l,r,u);
if (L<=l&&r<=R)
return seg[u];
else if(R<l||r<L)
return 0;
else{
int m=(l+r)/2;
return red(L,R,c1[u],l,m)
+red(L,R,c2[u],m+1,r);
}
}
int main(){
std::ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
ll c=0,m;cin>>m;
for(ll d,l,r;m--;){
cin>>d>>l>>r;
l+=c,r+=c;
if(d==1){
ll t=red(l,r);
cout<<t<<endl;
c=t;
}
if(d==2)
upd(l,r);
}
return 0;
}
Compilation message
apple.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
2 | #pragma GCC optimization("O3")
|
apple.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
3 | #pragma GCC optimization("unroll-loops")
|
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
10 ms |
5980 KB |
Output is correct |
5 |
Correct |
12 ms |
7188 KB |
Output is correct |
6 |
Correct |
13 ms |
6748 KB |
Output is correct |
7 |
Correct |
12 ms |
7108 KB |
Output is correct |
8 |
Correct |
92 ms |
51696 KB |
Output is correct |
9 |
Correct |
199 ms |
87596 KB |
Output is correct |
10 |
Correct |
209 ms |
98128 KB |
Output is correct |
11 |
Correct |
207 ms |
106576 KB |
Output is correct |
12 |
Correct |
211 ms |
110304 KB |
Output is correct |
13 |
Correct |
200 ms |
136968 KB |
Output is correct |
14 |
Correct |
192 ms |
138320 KB |
Output is correct |
15 |
Runtime error |
364 ms |
262144 KB |
Execution killed with signal 9 |
16 |
Halted |
0 ms |
0 KB |
- |