# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
145028 | TadijaSebez | Rectangles (IOI19_rect) | C++14 | 4056 ms | 809504 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "rect.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mt make_tuple
#define pb push_back
const int N=2505;
const int M=2*N;
const int inf=1e9+7;
int a[N][N],n,m,U1[N][N],D1[N][N],L1[N][N],R1[N][N],U2[N][N],D2[N][N],L2[N][N],R2[N][N],S[N],c,tmp[N];
struct SegmentTreeMax
{
int mx[M];
SegmentTreeMax(){ for(int i=0;i<M;i++) mx[i]=-inf;}
void Build(int a[])
{
for(int i=0;i<N;i++) mx[i+N]=a[i];
for(int i=N-1;i;i--) mx[i]=max(mx[i<<1],mx[i<<1|1]);
}
void Set(int i, int f){ for(i+=N;i;i>>=1) mx[i]=max(mx[i],f);}
int Get(int l, int r)
{
int ans=-inf;
for(l+=N,r+=N;l<=r;l>>=1,r>>=1)
{
if(l%2==1) ans=max(ans,mx[l++]);
if(r%2==0) ans=max(ans,mx[r--]);
}
return ans;
}
# | 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... |