| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1348132 | Aviansh | Pyramid Base (IOI08_pyramid_base) | C++20 | 2707 ms | 94812 KiB |
#include <bits/stdc++.h>
using namespace std;
const int inf = 2e9;
struct segTree{
struct node{
long long val,laz;
};
node *st;
node def;
int X;
segTree(int n){
int x = ceil(log2(n));
x++;
X=x;
st=new node[(1<<x)];
def.val=0;
def.laz=0;
fill(st,st+(1<<x),def);
}
void push(int ind, int l, int r){
if(st[ind].laz==0)
return;
st[ind].val+=st[ind].laz;
if(l<r){
st[ind<<1+1].laz+=st[ind].laz;
st[ind<<1+2].laz+=st[ind].laz;
}
st[ind].laz=0;
}
void update(int l, int r,int s, int e, int ind, int val){
push(ind,l,r);
if(e<l||s>r){
return;
}
if(s<=l&&r<=e){
st[ind].laz=val;
push(ind,l,r);
return;
}
int mid = (l+r)>>1;
update(l,mid,s,e,ind<<1+1,val);
update(mid+1,r,s,e,ind<<1+2,val);
st[ind].val = min(st[ind<<1+1].val,st[ind<<1+2].val);
}
void rset(){
fill(st,st+(1<<X),def);
}
};
int fin(int len, int m, int n, array<int,4> evs[], int p, segTree &st){
if(len==0){
return 0;
}
len--;
p*=2;
vector<array<int,3>>evens[m+1];
for(int i = 0;i<p;i++){
array<int,4>e = evs[i];
e[1]-=len;
e[1]=max(0,e[1]);
if(e[3]<0){
e[0]+=len;
}
e[0]=min(e[0],m);
evens[e[0]].push_back({e[1],e[2],e[3]});
}
st.update(0,n-1,0,n-1,0,inf);
evens[len].push_back({0,n-1,-inf});
st.update(0,n-1,n-len,n-1,0,inf);
int ans = inf;
for(int i = 0;i<m;i++){
for(array<int,3>e:evens[i]){
st.update(0,n-1,e[0],e[1],0,e[2]);
}
ans=min(ans,(int)st.st[0].val);
}
st.rset();
return ans;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int m,n;
cin >> m >> n;
int b;
cin >> b;
int p;
cin >> p;
array<int,4> evs[p<<1];
for(int i = 0;i<p;i++){
int x1,y1,x2,y2,c;
cin >> x1 >> y1 >> x2 >> y2 >> c;
x1--;x2--;
y1--;y2--;
evs[i]={x1,y1,y2,c};
evs[i+p]={x2+1,y1,y2,-c};
}
segTree st(n);
int lo = 0;
int hi = min(m,n);
while(lo<hi){
int mid = (lo+hi+1)>>1;
if(fin(mid,m,n,evs,p,st)<=b){
lo=mid;
}
else{
hi=mid-1;
}
}
cout << lo;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
