Submission #167501

# Submission time Handle Problem Language Result Execution time Memory
167501 2019-12-08T17:49:40 Z Toirov_Sadi Weighting stones (IZhO11_stones) C++17
0 / 100
3 ms 376 KB
#include <bits/stdc++.h>

#define fr first
#define se second

using namespace std;

const long long N = 1e5 + 7;
const long long inf = 1e9 + 7;
const long long mod = 1e9 + 7;

int n;
int mn[4 * N];
int mx[4 * N];
int lazy[4 * N];
void push(int v, int tl, int tr){
    if(tl != tr){
        lazy[v * 2] += lazy[v];
        lazy[v * 2 + 1] += lazy[v];
    }
    mx[v] += lazy[v];
    mn[v] += lazy[v];
    lazy[v] = 0;
}
void upd(int v, int tl, int tr, int l, int r, int x){
    if(l > r){
        return;
    }
    if(tl == l && tr == r){
        lazy[v] += x;
        push(v, tl, tr);
        return;
    }
    push(v, tl, tr);
    int tm = (tl + tr) / 2;
    upd(v * 2, tl, tm, l, min(r, tm), x);
    upd(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r, x);
    mx[v] = max(mx[v * 2], mx[v * 2 + 1]);
    mn[v] = min(mn[v * 2], mn[v * 2 + 1]);
}
int main()
{
    /// freopen("input.txt", "r", stdin);
    /// freopen("output.txt", "w", stdout);

    ios_base::sync_with_stdio( false );

    cin >> n;
    for(int i = 1; i <= n; i ++){
        int x, t;
        cin >> x >> t;
        if(t == 1){
            upd(1, 1, n, 1, x, 1);
        }
        else{
            upd(1, 1, n, 1, x, -1);
        }
        if(mx[1] >= 0 && mn[1] >= 0){
            cout << ">\n";
        }
        else if(mx[1] <= 0 && mn[1] <= 0){
            cout << "<\n";
        }
        else{
            cout << "?\n";
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Incorrect 2 ms 376 KB Output isn't correct
5 Halted 0 ms 0 KB -