Submission #1117923

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
11179232024-11-24 10:19:12Zero_OPFood Court (JOI21_foodcourt)C++14
100 / 100
365 ms72816 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#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);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

foodcourt.cpp: In constructor 'min_prefix_segment_tree::min_prefix_segment_tree(long long int)':
foodcourt.cpp:40:34: warning: 'min_prefix_segment_tree::st' will be initialized after [-Wreorder]
   40 |     vector<pair<long long, int>> st;
      |                                  ^~
foodcourt.cpp:39:23: warning:   'std::vector<long long int> min_prefix_segment_tree::lazy' [-Wreorder]
   39 |     vector<long long> lazy;
      |                       ^~~~
foodcourt.cpp:42:5: warning:   when initialized here [-Wreorder]
   42 |     min_prefix_segment_tree(int n ): st(n << 2), lazy(n << 2) {}
      |     ^~~~~~~~~~~~~~~~~~~~~~~
foodcourt.cpp: In member function 'void min_prefix_segment_tree::build(long long int, long long int, long long int)':
foodcourt.cpp:47:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   47 |             int mid = l + r >> 1;
      |                       ~~^~~
foodcourt.cpp: In member function 'void min_prefix_segment_tree::update(long long int, long long int, long long int, long long int, long long int, long long int)':
foodcourt.cpp:70:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   70 |             int mid = l + r >> 1;
      |                       ~~^~~
foodcourt.cpp: In member function 'std::pair<long long int, long long int> min_prefix_segment_tree::query(long long int, long long int, long long int, long long int, long long int)':
foodcourt.cpp:80:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   80 |         int mid = l + r >> 1;
      |                   ~~^~~
foodcourt.cpp: In function 'int main()':
foodcourt.cpp:148:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  148 |         for(auto [type, c, k, id] : updates[i]){
      |                  ^
foodcourt.cpp:158:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  158 |         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...