Submission #276346

#TimeUsernameProblemLanguageResultExecution timeMemory
276346sjimedHappiness (Balkan15_HAPPINESS)C++14
60 / 100
2120 ms499608 KiB
#include "happiness.h" #include<bits/stdc++.h> using namespace std; #define fast ios::sync_with_stdio(false); cin.tie(0); #define fi first #define se second #define em emplace #define eb emplace_back #define all(v) (v).begin(), (v).end() #define mp make_pair typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; const int inf = 1e9; const ll INF = 1e18; struct Node { ll v, lz; int l, r; Node() { v = INF; lz = 0; l = r = 0; } Node(ll e) { v = INF - e; lz = 0; l = r = 0; } }; ll sz = 0; ll n, m; map<ll,int> chk; Node tree[20202020]; void update(int node, ll s, ll e, ll l, ll r, ll x) { if(r < s || e < l) return; if(l <= s && e <= r) { tree[node].lz += x; return; } if(tree[node].l == 0) { tree[node].l = sz++; tree[tree[node].l].v = INF - (s+e)/2; } if(tree[node].r == 0) { tree[node].r = sz++; tree[tree[node].r].v = INF - e; } update(tree[node].l, s, (s+e)/2, l, r, x); update(tree[node].r, (s+e)/2+1, e, l, r, x); tree[node].v = min(tree[tree[node].l].v + tree[tree[node].l].lz, tree[tree[node].r].v + tree[tree[node].r].lz); } bool init(int coinsCount, long long maxCoinSize, long long coins[]) { n = coinsCount; m = maxCoinSize + 1; tree[0].v = INF - m; sz++; for(int i=0; i<n; i++) { if(chk.find(coins[i]) == chk.end()) update(0, 0, m, coins[i], coins[i], -INF); update(0, 0, m, coins[i]+1, m, coins[i]); chk[coins[i]]++; } return tree[0].v + tree[0].lz >= -1; } bool is_happy(int event, int coinsCount, long long coins[]) { n = coinsCount; for(int i=0; i<n; i++) { if(chk.find(coins[i]) != chk.end() && chk[coins[i]] == 1 && event == -1) update(0, 0, m, coins[i], coins[i], INF); if((chk.find(coins[i]) == chk.end() || chk[coins[i]] == 0) && event == 1) update(0, 0, m, coins[i], coins[i], -INF); if(event == 1) update(0, 0, m, coins[i]+1, m, coins[i]); else update(0, 0, m, coins[i]+1, m, -coins[i]); chk[coins[i]] += event; } return tree[0].v + tree[0].lz >= -1; }

Compilation message (stderr)

grader.cpp: In function 'int main()':
grader.cpp:16:12: warning: unused variable 'max_code' [-Wunused-variable]
   16 |  long long max_code;
      |            ^~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...