Submission #1117911

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
11179112024-11-24 09:48:44Zero_OPFood Court (JOI21_foodcourt)C++14
24 / 100
346 ms55368 KiB
#include <bits/stdc++.h>
using namespace std;
#define dbg(x) "[" #x " = " << (x) << "]"
struct fenwick_tree{
vector<long long> bit;
fenwick_tree(int n) : bit(n + 1, 0) {}
void update(int i, long long v){
for(; i < (int)bit.size(); i += i & (-i)) bit[i] += v;
}
long long query(int i){
long long sum = 0;
for(; i > 0; i -= i & (-i)) sum += bit[i];
return sum;
}
long long query(int l, int r){
return query(r) - query(l - 1);
}
int find_last(long long target){
int i = 0;
for(int b = 17; b >= 0; --b){
if(i + (1 << b) < (int)bit.size() && target - bit[i + (1 << b)] > 0){
i += (1 << b);
target -= bit[i];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

foodcourt.cpp: In constructor 'min_prefix_segment_tree::min_prefix_segment_tree(int)':
foodcourt.cpp:39:34: warning: 'min_prefix_segment_tree::st' will be initialized after [-Wreorder]
   39 |     vector<pair<long long, int>> st;
      |                                  ^~
foodcourt.cpp:38:23: warning:   'std::vector<long long int> min_prefix_segment_tree::lazy' [-Wreorder]
   38 |     vector<long long> lazy;
      |                       ^~~~
foodcourt.cpp:41:5: warning:   when initialized here [-Wreorder]
   41 |     min_prefix_segment_tree(int n ): st(n << 2), lazy(n << 2) {}
      |     ^~~~~~~~~~~~~~~~~~~~~~~
foodcourt.cpp: In member function 'void min_prefix_segment_tree::build(int, int, int)':
foodcourt.cpp:46:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   46 |             int mid = l + r >> 1;
      |                       ~~^~~
foodcourt.cpp: In member function 'void min_prefix_segment_tree::update(int, int, int, int, int, long long int)':
foodcourt.cpp:69:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   69 |             int mid = l + r >> 1;
      |                       ~~^~~
foodcourt.cpp: In member function 'std::pair<long long int, int> min_prefix_segment_tree::query(int, int, int, int, int)':
foodcourt.cpp:79:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   79 |         int mid = l + r >> 1;
      |                   ~~^~~
foodcourt.cpp: In function 'int main()':
foodcourt.cpp:131:35: warning: narrowing conversion of 'b' from 'long long int' to 'int' [-Wnarrowing]
  131 |             queries[a].push_back({b, i});
      |                                   ^
foodcourt.cpp:147:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  147 |         for(auto [type, c, k, id] : updates[i]){
      |                  ^
foodcourt.cpp:157:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  157 |         for(auto [b, id] : queries[i]){
      |                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...