Submission #996087

#TimeUsernameProblemLanguageResultExecution timeMemory
996087vqpahmadQuality Of Living (IOI10_quality)C++14
100 / 100
1391 ms71148 KiB
#include "quality.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define FF first
#define SS second
#define all(a) a.begin(), a.end()
#define mod (ll)(1000000007)

int rectangle(int rr, int cc, int h, int w, int A[3001][3001]){
    int l = 0, r = rr * cc, res;

    while (r - l > 1) {
        int md = (l + r) / 2;
        int mx = 0;

        vector<vector<int> > CC(3001, vector<int>(3001));
        for (int i = 0; i < rr; i++) {
            for (int j = 0; j < cc; j++) {
                CC[i][j] = (A[i][j] <= md);
                if (i) {
                    CC[i][j] += CC[i - 1][j];
                }
                if (j) {
                    CC[i][j] += CC[i][j - 1];
                }
		    if (i && j){
			    CC[i][j] -= CC[i - 1][j - 1];
		    }

                if (i >= h - 1 && j >= w - 1) {
                    int sum = CC[i][j];
                    if (i - h >= 0) {
                        sum -= CC[i - h][j];
                    }
                    if (j - w >= 0) {
                        sum -= CC[i][j - w];
                    }
                    if (i - h >= 0 && j - w >= 0) {
                        sum += CC[i - h][j - w];
                    }
			  //cout << md << ' ' << i << ' ' << j << ' ' << sum << endl;
                    mx = max(mx, sum);
                }
            }
        }

        if (mx > h * w / 2) {
		  r = md;
        }
        else {
		  l = md;
        }
    }
    return r;
}

Compilation message (stderr)

quality.cpp: In function 'int rectangle(int, int, int, int, int (*)[3001])':
quality.cpp:12:29: warning: unused variable 'res' [-Wunused-variable]
   12 |     int l = 0, r = rr * cc, res;
      |                             ^~~
#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...