//#include "quality.h"
#include<iostream>
#include<vector>
#include<queue>
#include<deque>
#include<string>
#include<fstream>
#include<algorithm>
#include <iomanip>
#include<map>
#include <set>
#include <unordered_map>
#include <stack>
#include <unordered_set>
#include <cmath>
#include <cstdint>
#define shit short int
#define ll long long
#define For(i, n) for(int i = 0; i < (int)n; i++)
#define ffor(i, a, n) for(int i = (int)a; i < (int)n; i++)
#define rfor(i, n) for(int i = (int)n; i >= (int)0; i--)
#define rffor(i, a, n) for(int i = (int)n; i >= (int)a; i--)
#define vec vector
#define ff first
#define ss second
#define pb push_back
#define pii pair<int, int>
#define NEK 1000000000
#define mod 1000000007
#define mod2 1000000009
#define rsz resize
#define prv1 43
#define prv2 47
#define D 8
#define trav(a,x) for (auto& a: x)
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define sig 0.0000001
using namespace std;
int rectangle(int r, int c, int h, int w, int p[3001][3001]) {
vec<vec<int>> ps(r + 1, vec<int>(c + 1, 0));
int le = 0; int ri = NEK;
while (le < ri) {
int mid = (le + ri) / 2;
ffor(i, 1, r+1) {
ffor(j, 1, c+1) {
ps[i][j] = ps[i - 1][j] + ps[i][j - 1] - ps[i - 1][j - 1] + (p[i - 1][j - 1] > mid) * 2 - 1;
}
}
int hod = 1;
For(i, (r - h + 1)) {
For(j, (c - w + 1)) {
hod = min(hod, ps[i + h][j + w] - ps[i][j + w] - ps[i + h][j] + ps[i][j]);
}
}
if (hod <= 0) ri = mid;
else le = mid + 1;
}
return le;
}
# | 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... |