Submission #224427

# Submission time Handle Problem Language Result Execution time Memory
224427 2020-04-17T21:49:01 Z jhnah917 Quality Of Living (IOI10_quality) C++14
100 / 100
3402 ms 107128 KB
#include "quality.h"
#include <bits/stdc++.h>
using namespace std;
 
int n, m, h, w;
int a[3030][3030];
int v[3030][3030]; //x 초과 : 1, x 미만 : -1
 
void make(int x){
    for(int i=1; i<=n; i++) for(int j=1; j<=m; j++){
        if(a[i][j] > x) v[i][j] = 1;
        else if(a[i][j] < x) v[i][j] = -1;
        else v[i][j] = 0;
    }
    for(int i=1; i<=n; i++) for(int j=1; j<=m; j++){
        v[i][j] += v[i-1][j];
        v[i][j] += v[i][j-1];
        v[i][j] -= v[i-1][j-1];
    }
}
 
int query(int x, int xx, int y, int yy){
    return v[xx][yy] - v[x-1][yy] - v[xx][y-1] + v[x-1][y-1];
}
 
int chk(int x){
    make(x);
    for(int i=1; i<=n; i++) if(i+h-1 <= n){
        for(int j=1; j<=m; j++) if(j+w-1 <= m){
            if(query(i, i+h-1, j, j+w-1) <= 0) return 1;
        }
    }
    return 0;
}
 
int rectangle(int N, int M, int H, int W, int A[3001][3001]) {
    n = N, m = M, h = H, w = W;
    for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) a[i][j] = A[i-1][j-1];
    int l = 0, r = 3030*3030;
    while(l < r){
        int m = l + r >> 1;
        if(chk(m)) r = m;
        else l = m + 1;
    }
    return r;
}

Compilation message

quality.cpp: In function 'int rectangle(int, int, int, int, int (*)[3001])':
quality.cpp:41:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         int m = l + r >> 1;
                 ~~^~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 768 KB Output is correct
4 Correct 8 ms 1664 KB Output is correct
5 Correct 8 ms 1664 KB Output is correct
6 Correct 8 ms 1664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 768 KB Output is correct
4 Correct 8 ms 1664 KB Output is correct
5 Correct 8 ms 1664 KB Output is correct
6 Correct 8 ms 1664 KB Output is correct
7 Correct 37 ms 5504 KB Output is correct
8 Correct 37 ms 5504 KB Output is correct
9 Correct 32 ms 5376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 768 KB Output is correct
4 Correct 8 ms 1664 KB Output is correct
5 Correct 8 ms 1664 KB Output is correct
6 Correct 8 ms 1664 KB Output is correct
7 Correct 37 ms 5504 KB Output is correct
8 Correct 37 ms 5504 KB Output is correct
9 Correct 32 ms 5376 KB Output is correct
10 Correct 372 ms 25208 KB Output is correct
11 Correct 362 ms 25336 KB Output is correct
12 Correct 197 ms 19320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 768 KB Output is correct
4 Correct 8 ms 1664 KB Output is correct
5 Correct 8 ms 1664 KB Output is correct
6 Correct 8 ms 1664 KB Output is correct
7 Correct 37 ms 5504 KB Output is correct
8 Correct 37 ms 5504 KB Output is correct
9 Correct 32 ms 5376 KB Output is correct
10 Correct 372 ms 25208 KB Output is correct
11 Correct 362 ms 25336 KB Output is correct
12 Correct 197 ms 19320 KB Output is correct
13 Correct 3402 ms 107044 KB Output is correct
14 Correct 3383 ms 106908 KB Output is correct
15 Correct 3046 ms 107128 KB Output is correct