#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 1;
int a[N], t[N * 2], c, h[N * 2];
void push(int v, int l, int r)
{
if(!h[v]) return;
if(l == r)
{
t[v] = (r - l + 1) * h[v];
h[v] = 0;
return;
}
else
{
t[v] = (r - l + 1) * h[v];
h[v + v] = h[v];
h[v + v + 1] = h[v];
h[v] = 0;
return;
}
}
void upd(int v, int l, int r, int ql, int qr)
{
int mid = l + r >> 1;
if(r < ql || l > qr) return;
if(ql <= l && r <= qr)
{
h[v] = 1;
push(v, l, r);
return;
}
else
{
upd(v + v, l, mid, ql, qr);
upd(v + v + 1, mid + 1, r, ql, qr);
}
push(v + v, l, mid);
push(v + v + 1, mid + 1, r);
t[v] = t[v + v] + t[v + v + 1];
}
int getsum(int v, int l, int r, int ql, int qr)
{
push(v, l, r);
if(r < ql || l > qr) return 0;
if(ql <= l && r <= qr)
{
return t[v];
}
else
{
int mid = l + r >> 1;
return getsum(v + v, l, mid, ql, qr) + getsum(v + v + 1, mid + 1, r, ql, qr);
}
}
main()
{
int m; cin >> m;
while(m--)
{
int d, l, r;
cin >> d >> l >> r;
if(d % 2)
{
c = getsum(1, 1, N, l + c, r + c);
cout << c << endl;
}
else
{
upd(1, 1, N, l + c, r + c);
}
}
}
/*
6
2 1 7
2 10 12
1 7 11
2 11 13
1 8 10
1 15 17
*/
Compilation message
apple.cpp: In function 'void upd(long long int, long long int, long long int, long long int, long long int)':
apple.cpp:31:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int mid = l + r >> 1;
~~^~~
apple.cpp: In function 'long long int getsum(long long int, long long int, long long int, long long int, long long int)':
apple.cpp:61:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int mid = l + r >> 1;
~~^~~
apple.cpp: At global scope:
apple.cpp:66:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main()
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
508 KB |
Output is correct |
3 |
Correct |
2 ms |
508 KB |
Output is correct |
4 |
Correct |
45 ms |
28864 KB |
Output is correct |
5 |
Correct |
53 ms |
31636 KB |
Output is correct |
6 |
Correct |
51 ms |
31636 KB |
Output is correct |
7 |
Incorrect |
53 ms |
31636 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |