Submission #1161150

#TimeUsernameProblemLanguageResultExecution timeMemory
1161150HanksburgerQuality Of Living (IOI10_quality)C++20
100 / 100
835 ms70896 KiB
#include "quality.h"
#include <bits/stdc++.h>
using namespace std;
int d[3001][3001];
int rectangle(int n, int m, int a, int b, int c[3001][3001])
{
    int l=1, r=n*m;
    while (l<r)
    {
        int mid=(l+r)/2, ok=0;
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
                d[i+1][j+1]=d[i+1][j]+d[i][j+1]-d[i][j]+(c[i][j]<=mid);
        for (int i=0; i<=n-a; i++)
            for (int j=0; j<=m-b; j++)
                if (d[i+a][j+b]-d[i+a][j]-d[i][j+b]+d[i][j]>a*b/2)
                    ok=1;
        if (ok)
            r=mid;
        else
            l=mid+1;
    }
    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...