This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "happiness.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const ll INF = 1e18;
ll M;
unordered_map<ll, ll> tree;
void update(ll i, ll k) { for(; i<=M; i+=(i&-i)) tree[i]+=k; }
ll query(ll i) { ll ret=0; for(; i>0; i-=(i&-i)) ret+=tree[i]; return ret; }
void push(ll x)
{
update(x, x);
}
void pop(ll x)
{
update(x, -x);
}
bool query()
{
ll now=1;
ll sum=query(M);
for(ll i=1; i<=sum; i++) if(query(i)<i) return 0;
/*
while(now<sum)
{
if(query(now)<now) return 0;
now=query(now)+1;
}
*/
return 1;
}
bool init(int coinsCount, ll maxCoinSize, ll coins[])
{
M=maxCoinSize;
for(int i=0; i<coinsCount; i++) push(coins[i]);
return query();
}
bool is_happy(int event, int coinsCount, ll coins[])
{
if(event==-1) for(int i=0; i<coinsCount; i++) pop(coins[i]);
else for(int i=0; i<coinsCount; i++) push(coins[i]);
return query();
}
Compilation message (stderr)
happiness.cpp: In function 'bool query()':
happiness.cpp:30:5: warning: unused variable 'now' [-Wunused-variable]
30 | ll now=1;
| ^~~
grader.cpp: In function 'int main()':
grader.cpp:16:12: warning: unused variable 'max_code' [-Wunused-variable]
16 | long long max_code;
| ^~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |