Submission #538354

#TimeUsernameProblemLanguageResultExecution timeMemory
538354fcwHappiness (Balkan15_HAPPINESS)C++17
100 / 100
401 ms16132 KiB
#include "happiness.h" #include <bits/stdc++.h> using namespace std; using lint = long long; multiset<lint>s[40]; lint sum[40]; void add(lint x, int b){ int p = 0; while(1ll<<(p+1) <= x) p++; if(b == 1) s[p].insert(x), sum[p] += x; else s[p].erase(s[p].find(x)), sum[p] -= x; } bool ok(){ lint cnt = 0; for(int i=0;i<40;i++){ if(s[i].empty()) continue; lint x = *s[i].begin(); if(cnt + 1 < x) return 0; if(s[i].size() > 1 && cnt + x + 1 < *next(s[i].begin())) return 0; cnt += sum[i]; } return 1; } bool init(int coinsCount, lint maxCoinSize, lint coins[]) { for(int i=0;i<coinsCount;i++) add(coins[i], 1); return ok(); } bool is_happy(int event, int coinsCount, lint coins[]){ for(int i=0;i<coinsCount;i++){ if(event == -1) add(coins[i], -1); else add(coins[i], 1); } return ok(); }

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