답안 #288609

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
288609 2020-09-01T16:47:33 Z MasterTaster 삶의 질 (IOI10_quality) C++14
0 / 100
1 ms 512 KB
#include<bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
//#include "quality.h"

using namespace std;

#define ll long long
#define pb push_back
#define pii pair<int, int>
#define xx first
#define yy second
#define endl "\n"
#define MAXN 9000000

static int R,C,H,W,Q[3001][3001],ans;
int pref[3010][3010], q[3010][3010], pom[3010][3010];
//int bit[310];
int pola;

bool check(int med)
{
    for (int i=0; i<R; i++)
    {
        for (int j=0; j<C; j++)
        {
            pref[i][j]=0;
            if(q[i][j]<=med) pom[i][j]=1;
            else pom[i][j]=0;
            ///cout<<pom[i][j]<<" ";
        }
        ///cout<<endl;
    }

    ///cout<<endl;
    for (int i=0; i<R; i++)
    {
        for (int j=0; j<C; j++)
        {
            pref[i][j]+=pom[i][j];
            if (i>0) pref[i][j]+=pref[i-1][j];
            if (j>0) pref[i][j]+=pref[i][j-1];
            if (i>0 && j>0) pref[i][j]-=pref[i-1][j-1];
            ///cout<<pref[i][j]<<" ";
        }
        ///cout<<endl;
    }

    for (int i=H-1; i<R; i++)
    {
        for (int j=W-1; j<C; j++)
        {
            int koliko=pref[i][j];
            if (i>=H) koliko-=pref[i-H][j];
            if (j>=W) koliko-=pref[i][j-W];
            if (i>=H && j>=W) koliko+=pref[i-H][j-W];
            if (koliko>=pola) { return true; }
        }
    }
    return false;
}

int rectangle(int R, int C, int H, int W, int Q[3001][3001])
{
    pola=H*W/2+1;
    for (int i=0; i<R; i++) for (int j=0; j<C; j++) q[i][j]=Q[i][j];

    int l=1, r=R*C;
    int ress=R*C;
    while (l<=r)
    {
        int mid=l+(r-l)/2;
        ///cout<<mid<<":"<<endl<<endl<<endl;
        if (check(mid))
        {
            ress=mid;
            r=mid-1;
        }
        else l=mid+1;
    }
    return ress;
}

Compilation message

quality.cpp:16:34: warning: 'ans' defined but not used [-Wunused-variable]
   16 | static int R,C,H,W,Q[3001][3001],ans;
      |                                  ^~~
quality.cpp:16:20: warning: 'Q' defined but not used [-Wunused-variable]
   16 | static int R,C,H,W,Q[3001][3001],ans;
      |                    ^
quality.cpp: In function 'bool check(int)':
quality.cpp:53:33: warning: array subscript -1 is below array bounds of 'int [3010]' [-Warray-bounds]
   53 |             int koliko=pref[i][j];
      |                        ~~~~~~~~~^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -