Submission #75344

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
753442018-09-09 10:45:47FiloSanzaDeda (COCI17_deda)C++14
140 / 140
594 ms3700 KiB
#include <bits/stdc++.h>
using namespace std;
struct segmentTree{
const int nullval = 2e9;
int S;
vector<int> v;
segmentTree(int s){
S = (1<<((int)ceil(log2(s))+1)) - 1;
v.resize(S, nullval);
}
inline int father(int pos){ return (pos-1)/2; }
inline int left(int pos){ return (pos*2)+1; }
inline int right(int pos){ return (pos+1)*2; }
void update(int pos, int val){
pos = pos + S/2;
assert(v[pos] == nullval);
v[pos] = val;
while(pos != 0){
pos = father(pos);
v[pos] = min(v[left(pos)], v[right(pos)]);
}
}
int solve(int pos, int val){
while(pos < S/2){
if(v[left(pos)] <= val)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...