Submission #713507

#TimeUsernameProblemLanguageResultExecution timeMemory
713507four_specksHappiness (Balkan15_HAPPINESS)C++17
100 / 100
1588 ms380200 KiB
#include "happiness.h" #include <bits/stdc++.h> using namespace std; namespace { } // namespace struct SegTree { SegTree() {} SegTree(long _l, long _r) : l(_l), r(_r), val(0) {} long l, r; long val; unique_ptr<SegTree> lc, rc; void update(long p, long x) { val += x; if (r - l == 1) return; long mid = (l + r) / 2; if (p < mid) { if (!lc) lc = make_unique<SegTree>(l, mid); lc->update(p, x); } else { if (!rc) rc = make_unique<SegTree>(mid, r); rc->update(p, x); } } long query() const { return val; } long query(long pl, long pr) const { if (r <= pl || pr <= l) return 0; if (pl <= l && r <= pr) return val; long ret = 0; if (lc) ret += lc->query(pl, pr); if (rc) ret += rc->query(pl, pr); return ret; } }; SegTree st; bool check() { long total = st.query(); for (long sum = 1; sum < total;) { long cur = st.query(0, sum + 1); if (cur < sum) return 0; sum = cur + 1; } return 1; } bool init(int coinsCount, long long maxCoinSize, long long coins[]) { st = SegTree(0, maxCoinSize + 1); for (int i = 0; i < coinsCount; i++) st.update(coins[i], coins[i]); return check(); } bool is_happy(int event, int coinsCount, long long coins[]) { for (int i = 0; i < coinsCount; i++) st.update(coins[i], event * coins[i]); return check(); }

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...