Submission #336099

# Submission time Handle Problem Language Result Execution time Memory
336099 2020-12-14T17:53:41 Z nikatamliani Weighting stones (IZhO11_stones) C++14
0 / 100
185 ms 1900 KB
#include <bits/stdc++.h>
#define mn first
#define mx second
using namespace std;
const int N = 1e5+10;
pair<int,int> tree[4*N];
int lazy[N];
void push(int l, int r, int p) {
    if(l < r) {
        lazy[p << 1] += lazy[p];
        lazy[p << 1 | 1] += lazy[p];
    }
    tree[p].mn += lazy[p];
    tree[p].mx += lazy[p];
    lazy[p] = 0;
}
void add(int l, int r, int L, int R, int val, int p) {
    push(l, r, p);
    if(l > R || L > r) return;
    if(L <= l && R >= r) {
        lazy[p] += val;
        push(l, r, p);
    } else {
        int m = l + r >> 1;
        add(l, m, L, R, val, p << 1);
        add(m+1, r, L, R, val, p << 1 | 1);
        tree[p].mn = min(tree[p << 1].mn, tree[p << 1 | 1].mn);
        tree[p].mx = max(tree[p << 1].mx, tree[p << 1 | 1].mx);
    }
}
int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; ++i) {
        int x, where;
        cin >> x >> where;
        if(where == 1) {
            add(1, n, 1, x, 1, 1);
        } else {
            add(1, n, 1, x, -1, 1);
        }
        push(1, n, 1);
        if(tree[1].mn >= 0) {
            cout << ">\n"; 
        } else if(tree[1].mx <= 0) {
            cout << "<\n";
        } else {
            cout << "?\n";
        }
    }
}

Compilation message

stones.cpp: In function 'void add(int, int, int, int, int, int)':
stones.cpp:24:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   24 |         int m = l + r >> 1;
      |                 ~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 2 ms 364 KB Output is correct
6 Correct 2 ms 364 KB Output is correct
7 Correct 3 ms 364 KB Output is correct
8 Correct 4 ms 364 KB Output is correct
9 Correct 4 ms 364 KB Output is correct
10 Correct 28 ms 748 KB Output is correct
11 Incorrect 185 ms 1900 KB Output isn't correct
12 Halted 0 ms 0 KB -