Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // __ _ _ _ _____ _ _ _____ _ _ ___
- //| \ | | | | | | / ___| | | | | / ___/ | | | | / |
- //| \| | | | | | | | | | | | | |___ | |_| | / /| |
- //| |\ | | | | | | | _ | | | | \___ \ | _ | / / | |
- //| | \ | | |_| | | |_| | | |_| | ___| | | | | | / / | |
- //|_| \_| \_____/ \_____/ \_____/ /_____/ |_| |_| /_/ |_|
- #include<iostream>
- #include<fstream>
- #include<stdio.h>
- #include<cstdio>
- #include<stdlib.h>
- #include<string>
- #include<string.h>
- #include<ctype.h>
- #include<algorithm>
- #include<cmath>
- #include<set>
- #include<queue>
- #include<stack>
- #include<iomanip>
- #include<vector>
- #include<map>
- #define PB(x) push_back(x)
- #define MP(x, y) make_pair(x, y)
- #define ff first
- #define ss second
- #define ll long long
- #define pii pair< int, int >
- #define MEM(p, v) memset(p, v, sizeof(p))
- #define READ(f) freopen(f, "r", stdin)
- #define WRITE(f) freopen(f, "w", stdout)
- #define S system("pause")
- #define R return(0)
- #define INF int(1e9)
- #define MAX_5 int(1e5+5)
- #define MAX_6 int(1e6+6)
- #define ll long long
- using namespace std;
- int a[3005][3005],d[3005][3005],i,m,ans,k,l,j,r,q,o,x,n,ma,mi,w,c;
- string s;
- int get(int i,int j,int ii,int jj)
- {
- return d[ii][jj]-d[ii][j-1]-d[i-1][jj]+d[i-1][j-1];
- }
- int go(int k)
- {
- for(q=1;q<=n;q++)
- for(o=1;o<=m;o++)
- d[q][o]=d[q-1][o]+d[q][o-1]-d[q-1][o-1]+(a[q][o]>k?1:(a[q][o]==k?0:-1));
- /*
- cout<<k<<endl;
- for(q=1;q<=n;q++){
- for(o=1;o<=m;o++)cout<<d[q][o]<<" ";cout<<endl;}
- cout<<"---"<<endl;
- */
- int f=1;
- for(q=1;q<=n-w+1;q++)
- for(o=1;o<=m-c+1;o++)
- {
- int u=get(q,o,q+w-1,o+c-1);
- if(u<0)return -1;
- if(u==0)f=0;
- }
- return f;
- }
- main()
- {
- cin>>n>>m>>w>>c;
- for(i=1;i<=n;i++)
- for(j=1;j<=m;j++)scanf("%d",&a[i][j]);
- l=1;r=n*m;
- while(l<=r)
- {
- int mid=l+r;mid/=2;
- x=go(mid);
- if(x==-1)r=mid-1;else
- if(x==1) l=mid+1;else
- if(x==0){printf("%d\n",mid);break;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement