Submission #890532

# Submission time Handle Problem Language Result Execution time Memory
890532 2023-12-21T12:11:01 Z LucaIlie Food Court (JOI21_foodcourt) C++17
21 / 100
481 ms 9176 KB
#include <bits/stdc++.h>

using namespace std;
 
const int MAX_N = 3e5;
long long v[MAX_N + 1];
 
struct SegTree {
    struct info {
        long long sum, minn;
 
        info operator + ( info &x ) {
            info ans;
 
            ans.minn = min( minn, sum + x.minn );
            ans.sum = sum + x.sum;
 
            return ans;
        }
    };
 
    info lazy[4 * MAX_N];
 
    void propag( int v, int l, int r ) {
        if ( l != r ) {
            lazy[v * 2 + 1] = lazy[v * 2 + 1] + lazy[v];
            lazy[v * 2 + 2] = lazy[v * 2 + 2] + lazy[v];
            lazy[v] = { 0, 0 };
        }
    }
 
    void update( int v, int l, int r, int lu, int ru, int x ) {
        propag( v, l, r );
 
        if ( l > ru || r < lu )
            return;
 
        if ( lu <= l && r <= ru ) {
            info add = { x, min( x, 0 ) };
            lazy[v] = lazy[v] + add;
            propag( v, l, r );
            return;
        }
 
        int mid = (l + r) / 2;
        update( v * 2 + 1, l, mid, lu, ru, x );
        update( v * 2 + 2, mid + 1, r, lu, ru, x );
    }
 
    long long query( int v, int l, int r, int p ) {
        propag( v, l, r );
 
        if ( l == r )
            return lazy[v].sum - lazy[v].minn;
 
        int mid = (l + r) / 2;
        if ( p <= mid )
            return query( v * 2 + 1, l, mid, p );
        return query( v * 2 + 2, mid + 1, r, p );
    }
} qs;
 
signed main() {
    int n, m, q;
 
    cin >> n >> m >> q;
    while ( q-- ) {
        int type;
 
        cin >> type;
        if ( type == 1 ) {
            int l, r, c, k;
            cin >> l >> r >> c >> k;
            qs.update( 0, 1, n, l, r, k );
        } else if ( type == 2 ) {
            int l, r, k;
            cin >> l >> r >> k;
            qs.update( 0, 1, n, l, r, -k );
        } else {
            int p;
            long long x;
            cin >> p >> x;
            long long s = qs.query( 0, 1, n, p );
            cout << (s >= x) << "\n";
        }
    }
 
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 91 ms 2396 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 425 ms 8948 KB Output is correct
2 Correct 316 ms 8536 KB Output is correct
3 Correct 454 ms 8888 KB Output is correct
4 Correct 300 ms 8624 KB Output is correct
5 Correct 327 ms 8956 KB Output is correct
6 Correct 431 ms 8820 KB Output is correct
7 Correct 261 ms 604 KB Output is correct
8 Correct 252 ms 344 KB Output is correct
9 Correct 481 ms 9040 KB Output is correct
10 Correct 440 ms 8764 KB Output is correct
11 Correct 419 ms 8644 KB Output is correct
12 Correct 413 ms 8536 KB Output is correct
13 Correct 419 ms 8536 KB Output is correct
14 Correct 454 ms 8788 KB Output is correct
15 Correct 431 ms 8536 KB Output is correct
16 Correct 433 ms 8788 KB Output is correct
17 Correct 439 ms 8744 KB Output is correct
18 Correct 469 ms 8536 KB Output is correct
19 Correct 452 ms 8972 KB Output is correct
20 Correct 418 ms 8540 KB Output is correct
21 Correct 430 ms 8788 KB Output is correct
22 Correct 425 ms 8736 KB Output is correct
23 Correct 446 ms 8876 KB Output is correct
24 Correct 430 ms 8540 KB Output is correct
25 Correct 418 ms 8784 KB Output is correct
26 Correct 424 ms 9176 KB Output is correct
27 Correct 337 ms 8684 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 98 ms 2508 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -