Submission #331281

# Submission time Handle Problem Language Result Execution time Memory
331281 2020-11-27T23:13:34 Z joseacaz Quality Of Living (IOI10_quality) C++17
100 / 100
2483 ms 140424 KB
#include "quality.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;

const int MAXN = 3005;
int pre[MAXN][MAXN];

int sum(int x1, int y1, int x2, int y2)
{
    return pre[x2][y2] - pre[x1 - 1][y2] - pre[x2][y1 - 1] + pre[x1 - 1][y1 - 1];
}

int rectangle(int R, int C, int H, int W, int Q[3001][3001])
{
    int s = 1, e = R*C, mid, val, ans = 1;
    while(s <= e)
    {
        mid = (s + e) / 2;
        
        for(int i = 0; i < R; i++)
            for(int j = 0; j < C; j++)
                pre[i + 1][j + 1] = (Q[i][j] <= mid);
        
        for(int i = 1; i <= R; i++)
            for(int j = 1; j <= C; j++)
                pre[i][j] += pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1];
        
        val = 0;
        for(int i = H; i <= R; i++)
            for(int j = W; j <= C; j++)
                if(sum(i - H + 1, j - W + 1, i, j) > H*W/2)
                    val = 1;
        
        if(val)
        {
            ans = mid;
            e = mid - 1;
        }
        else
            s = mid + 1;
    }

    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 620 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 620 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1260 KB Output is correct
5 Correct 3 ms 1260 KB Output is correct
6 Correct 4 ms 1260 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 620 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1260 KB Output is correct
5 Correct 3 ms 1260 KB Output is correct
6 Correct 4 ms 1260 KB Output is correct
7 Correct 21 ms 3948 KB Output is correct
8 Correct 20 ms 3948 KB Output is correct
9 Correct 20 ms 3748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 620 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1260 KB Output is correct
5 Correct 3 ms 1260 KB Output is correct
6 Correct 4 ms 1260 KB Output is correct
7 Correct 21 ms 3948 KB Output is correct
8 Correct 20 ms 3948 KB Output is correct
9 Correct 20 ms 3748 KB Output is correct
10 Correct 264 ms 23020 KB Output is correct
11 Correct 237 ms 22892 KB Output is correct
12 Correct 130 ms 15724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 620 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1260 KB Output is correct
5 Correct 3 ms 1260 KB Output is correct
6 Correct 4 ms 1260 KB Output is correct
7 Correct 21 ms 3948 KB Output is correct
8 Correct 20 ms 3948 KB Output is correct
9 Correct 20 ms 3748 KB Output is correct
10 Correct 264 ms 23020 KB Output is correct
11 Correct 237 ms 22892 KB Output is correct
12 Correct 130 ms 15724 KB Output is correct
13 Correct 2483 ms 140268 KB Output is correct
14 Correct 2233 ms 140424 KB Output is correct
15 Correct 2153 ms 133244 KB Output is correct