제출 #641774

#제출 시각아이디문제언어결과실행 시간메모리
641774finn__Happiness (Balkan15_HAPPINESS)C++17
60 / 100
1495 ms524288 KiB
#include <bits/stdc++.h> using namespace std; #include "happiness.h" struct tnode { int64_t t; tnode *l, *r; uint64_t x, y; void new_node() { if (!l) { l = new tnode; l->l = 0; l->r = 0; l->t = 0; l->x = x; l->y = (x + y) / 2; } if (!r) { r = new tnode; r->l = 0; r->r = 0; r->t = 0; r->x = (x + y) / 2 + 1; r->y = y; } } void update(uint64_t i, int64_t v) { if (x == i && y == i) t += v; else { new_node(); if (i <= (x + y) / 2) l->update(i, v); else r->update(i, v); t = l->t + r->t; } } int64_t range_sum(uint64_t i, uint64_t j) { if (y < i || x > j) return 0; if (i <= x && y <= j) return t; else { new_node(); return l->range_sum(i, j) + r->range_sum(i, j); } } }; tnode *root; bool check() { int64_t curr = 1, sum = root->t; while (curr < sum) { int64_t v = root->range_sum(1, curr); if (v < curr) return 0; curr = v + 1; } return 1; } bool init(int coinsCount, long long maxCoinSize, long long coins[]) { root = new tnode; root->t = 0; root->x = 0; root->y = maxCoinSize + 1; root->l = 0; root->r = 0; for (int i = 0; i < coinsCount; i++) root->update(coins[i], coins[i]); return check(); } bool is_happy(int event, int coinsCount, long long coins[]) { for (int i = 0; i < coinsCount; i++) root->update(coins[i], event * coins[i]); return check(); }

컴파일 시 표준 에러 (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...