Submission #288630

# Submission time Handle Problem Language Result Execution time Memory
288630 2020-09-01T17:17:13 Z MasterTaster Quality Of Living (IOI10_quality) C++14
Compilation error
0 ms 0 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];
//int bit[310];
int pola;

bool check(int med)
{

    ///cout<<endl;
    for (int i=0; i<R; i++)
    {
        for (int j=0; j<C; j++)
        {
            pref[i][j]=0;
            if (q[i][j]<=med) pref[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;
}

int main(){
   scanf("%d%d%d%d",&R,&C,&H,&W);
   for (int i=0;i<R;i++) for (int j=0;j<C;j++) scanf("%d",&Q[i][j]);
   ans = rectangle(R,C,H,W,Q);
   printf("%d\n",ans);
   return 0;
}

Compilation message

quality.cpp: In function 'int main()':
quality.cpp:75:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   75 |    scanf("%d%d%d%d",&R,&C,&H,&W);
      |    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
quality.cpp:76:53: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   76 |    for (int i=0;i<R;i++) for (int j=0;j<C;j++) scanf("%d",&Q[i][j]);
      |                                                ~~~~~^~~~~~~~~~~~~~~
/tmp/cc9FT6tQ.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccEDOmik.o:quality.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status