답안 #254071

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
254071 2020-07-29T10:17:13 Z test2 원숭이와 사과 나무 (IZhO12_apple) C++14
0 / 100
38 ms 1152 KB
#include <bits/stdc++.h>

using namespace std;

const int N = (1 << 22);
int t, a, b, c;
int rip[N];

int occ[N];
int bit[N];

int tree[N * 4];
int lazy[N * 4];

void update(int node, int L, int R, int l, int r)
{
        if (l > r || l > R || r < L || tree[node] == R - L + 1)
                return;
        //cout << node << " " << L << " " << R << " " << l << " " << r << "..\n";
        if (L >= l && R <= r)
        {
                tree[node] = R - L + 1;

              //  cout << node << "*" << L << " " << R << "*" << tree[node] << "..\n";
                return;
        }
        int mid = (L + R) >> 1;
        update(node * 2 + 1, L, mid, l, r);
        update(node * 2 + 2, mid + 1, R, l, r);
        tree[node] = tree[node * 2 + 1] + tree[node * 2 + 2];
}

int query(int node, int L, int R, int l, int r)
{
        if (l > r || l > R || r < L)
                return 0;

        if (L >= l && R <= r)
        {
                return tree[node];
        }

        if(tree[node] == R - L + 1){
                return min(r , R) - max(l , L ) + 1; 
        }

        int mid = (L + R) >> 1;
        int s1 = query(node * 2 + 1, L, mid, l, r);
        int s2 = query(node * 2 + 2, mid + 1, R, l, r);

        return s1 + s2;
}

int main()
{
        ios_base::sync_with_stdio(0);
        cin.tie(0);
        //freopen("in.in", "r", stdin);

        cin >> t;
        int C = 0;
        while (t--)
        {
                int a, b, c;
                cin >> a >> b >> c;
                b += C;
                c += C;
                if (a == 1)
                {
                        int ans = query(0, 1, N, b, c);
                        C = ans;
                        cout << ans << "\n";
                }
                else
                {
                        update(0, 1, N, b, c);
                }
        }

        return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 5 ms 768 KB Output is correct
5 Correct 5 ms 512 KB Output is correct
6 Correct 5 ms 640 KB Output is correct
7 Correct 5 ms 512 KB Output is correct
8 Correct 21 ms 1152 KB Output is correct
9 Incorrect 38 ms 1016 KB Output isn't correct
10 Halted 0 ms 0 KB -