Submission #453664

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
4536642021-08-04 13:54:31ponytailWall (IOI14_wall)C++17
100 / 100
1451 ms77524 KiB
#include "wall.h"
#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
const int MAXN = 2e6 + 10;
struct node{
int Min, Max;
} a[4*MAXN];
void update(int l,int r,int constl,int constr,int idx,int val,string type){
if(l<=constl && constr<=r){
if(type == "ADD"){
a[idx].Min = max(a[idx].Min, val);
a[idx].Max = max(a[idx].Max, val);
}
else{
a[idx].Min = min(a[idx].Min, val);
a[idx].Max = min(a[idx].Max, val);
}
return;
}
int mid = (constl+constr)/2;
//Lazy propagation: Remember to return a[idx].Min and a[idx].Max into initial state
a[2*idx+1].Min = max(a[2*idx+1].Min, a[idx].Max);
a[2*idx+1].Max = max(a[2*idx+1].Max, a[idx].Max);
a[2*idx+2].Min = max(a[2*idx+2].Min, a[idx].Max);
a[2*idx+2].Max = max(a[2*idx+2].Max, a[idx].Max);
a[2*idx+1].Min = min(a[2*idx+1].Min, a[idx].Min);
a[2*idx+1].Max = min(a[2*idx+1].Max, a[idx].Min);
a[2*idx+2].Min = min(a[2*idx+2].Min, a[idx].Min);
a[2*idx+2].Max = min(a[2*idx+2].Max, a[idx].Min);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...