제출 #797661

#제출 시각아이디문제언어결과실행 시간메모리
797661idiotcomputerHappiness (Balkan15_HAPPINESS)C++11
60 / 100
1405 ms524288 KiB
#include "happiness.h" #include <bits/stdc++.h> using namespace std; const long long int MAX_V = 1e12; const int MAX_Q = 1e5; struct node { long long int tl,tr; int l = -1; int r = -1; long long int sum = 0; long long int lazy = 0; }; node segt[125*MAX_Q]; int cnt = 0; void cnew(int idx){ long long int m = (segt[idx].tl + segt[idx].tr)/2; if (segt[idx].l == -1){ segt[idx].l = cnt; segt[cnt].tl = segt[idx].tl; segt[cnt].tr = m; cnt++; } if (segt[idx].r == -1){ segt[idx].r = cnt; segt[cnt].tl = m+1; segt[cnt].tr = segt[idx].tr; cnt++; } } void upd(int idx, long long int tl, long long int tr, long long int v){ if (segt[idx].tl > tr || segt[idx].tr < tl){ return; } if (segt[idx].tl >= tl && segt[idx].tr <= tr){ segt[idx].lazy += v; return; } cnew(idx); int cl = segt[idx].l; int cr = segt[idx].r; upd(cl,tl,tr,v); upd(cr,tl,tr,v); segt[idx].sum = min(segt[cl].sum + segt[cl].lazy, segt[cr].sum + segt[cr].lazy); return; } unordered_map<long long int,int> vis; bool init(int coinsCount, long long maxCoinSize, long long coins[]){ segt[0].tl = 1; segt[0].tr = MAX_V; cnt++; for (int i =0; i < coinsCount; i++){ if (coins[i] != MAX_V){ upd(0,coins[i]+1,MAX_V,coins[i]); } vis[coins[i]]+=1; if (vis[coins[i]] == 1){ upd(0,coins[i],coins[i],-1*coins[i]); } } if (segt[0].sum + segt[0].lazy >= -1){ return true; } return false; } bool is_happy(int event, int coinsCount, long long coins[]){ if (event == -1){ //shopping for (int i =0; i < coinsCount; i++){ upd(0,coins[i]+1,MAX_V,-1*coins[i]); vis[coins[i]] -= 1; if (vis[coins[i]] == 0){ upd(0,coins[i],coins[i],coins[i]); } } } else { //adding for (int i =0; i < coinsCount; i++){ upd(0,coins[i]+1,MAX_V,coins[i]); vis[coins[i]] += 1; if (vis[coins[i]] == 1){ upd(0,coins[i],coins[i],-1*coins[i]); } } } if (segt[0].sum + segt[0].lazy >= -1){ return true; } return false; }

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