Submission #1264025

#TimeUsernameProblemLanguageResultExecution timeMemory
1264025DeltaStructQuality Of Living (IOI10_quality)C++20
100 / 100
857 ms71020 KiB
#include <bits/stdc++.h>
using namespace std;

int rectangle(int h,int w,int x,int y,int A[3001][3001]){
  vector B(h+1,vector<int>(w+1));
  int l(h*w),r(0),mid;
  while(abs(r-l)>1){
    mid = (l+r)/2;
    for (int i(0);i < h;++i) for (int k(0);k < w;++k) B[i+1][k+1] = B[i+1][k]+B[i][k+1]-B[i][k]+(A[i][k]>mid);
    bool f = 0;
    for (int i(x);i <= h;++i) for (int k(y);k <= w;++k) f |= (B[i][k]-B[i-x][k]-B[i][k-y]+B[i-x][k-y]<=x*y/2);
    if (f) l = mid;
    else r = mid;
  }
  return l;
}
#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...