Submission #1254499

#TimeUsernameProblemLanguageResultExecution timeMemory
1254499yeongminbHappiness (Balkan15_HAPPINESS)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#define f first
#define s second
#define fastio cin.tie(0)->ios::sync_with_stdio(0);
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const ll INF = 1e18;
struct Node{
    ll num = 0, lazy = 0;
    Node *left = nullptr, *right = nullptr;
};
struct SegmentTree{
public:
    ll n; 
    Node *root = new Node;
    SegmentTree(ll N){n = N;};
    
    void update(ll l, ll r, ll val){
        update(root, 0, n-1, l, r, val);
    }
    ll query(ll l, ll r){
        return query(root, 0, n-1, l, r);
    }
private:
    void propagate(Node *cur, ll st, ll en){
        if(cur->left == nullptr) cur->left = new Node;
        if(cur->right == nullptr) cur->right = new Node;
        ll mid = (st + en)/2;
        if(cur->lazy){
            cur->left->lazy += cur->lazy;
            cur->right->lazy += cur->lazy;
            cur->left->num += (cur->lazy);
            cur->right->num += (cur->lazy);
        }
    }
    void update(Node *cur, ll st, ll en, ll l, ll r, ll val){
        if(l > en || r < st) return;
        if(l <= st && en <= r){
            cur->lazy += val;
            cur->num += val;
            return;
        }
        propagate(cur, st, en);
        ll mid = (st + en)/2;
        update(cur->left, st, mid, l, r, val);
        update(cur->right, mid+1, en, l, r, val);
        cur->num = max((cur->left->num), (cur->right->num));
    }
    ll query(Node *cur, ll st, ll en, ll l, ll r){
        if(l > en || r < st) return 0;
        if(l <= st && en <= r) return cur->num;
        propagate(cur, st, en);
        ll mid = (st + en)/2;
        return max(query(cur->left, st, mid, l, r), query(cur->right, mid+1, en, l, r));
    }
};

int main(){
    fastio;
    ll N,M; cin >> N >> M;
    vector<ll> v(N), freq(M + 10, 0);
    for(auto &x : v) cin >> x;
    SegmentTree seg(M + 10);
    
    for(auto x : v){
        seg.update(x+1, M+5, -x);
        if(freq[x] == 0)
            seg.update(x,x,x);
        freq[x] ++;
    }
    
    if(seg.query(0, M+5) > 1) cout << "0\n";
    else cout << "1\n";
    
    ll Q; cin >> Q;
    while(Q--){
        ll i,K; cin >> i >> K;
        if(i == -1){
            while(K--){
                ll x; cin >> x;
                freq[x] --;
                seg.update(x+1, M+5, x);
                if(freq[x] == 0) seg.update(x,x,-x);
            }
        } else {
            while(K--){
                ll x; cin >> x;
                if(freq[x] == 0) seg.update(x,x,x);
                freq[x] ++;
                seg.update(x+1, M+5, -x);
            }
        }
        if(seg.query(0, M+5) > 1) cout << "0\n";
        else cout << "1\n";
    }
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccwAHbKb.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccJee7Eb.o:happiness.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccwAHbKb.o: in function `main':
grader.cpp:(.text.startup+0x9a): undefined reference to `init(int, long long, long long*)'
/usr/bin/ld: grader.cpp:(.text.startup+0x15b): undefined reference to `is_happy(int, int, long long*)'
collect2: error: ld returned 1 exit status