fork download
  1. #include <bits/stdc++.h>
  2. #define FOR(i,start,end,jump) for(int i=(start),_end=(end);i<=_end;i+=(jump))
  3. #define fi first
  4. #define se second
  5. #define ps(any) push_back(any)
  6. using namespace std;
  7.  
  8. const int maxn=1e3+3;
  9.  
  10. pair<int,int> vt;
  11. int a[maxn][maxn],m,n,p,q;
  12. long long col[maxn][maxn],row[maxn][maxn],sum=0,res=0,save;
  13. void READ(){
  14. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  15. freopen("VUONNHA.inp","r",stdin);
  16. freopen("VUONNHA.out","w",stdout);
  17. cin>>n>>m>>p>>q;
  18. FOR(i,1,n,1) row[i][0]=0;
  19. FOR(i,1,m,1) col[0][i]=0;
  20. FOR(i,1,n,1){
  21. FOR(j,1,m,1){
  22. cin>>a[i][j];
  23. row[i][j]=row[i][j-1]+a[i][j];
  24. col[i][j]=col[i-1][j]+a[i][j];
  25. }
  26. }
  27. }
  28.  
  29.  
  30. void DO(){
  31. FOR(i,1,p,1) FOR(j,1,q,1) sum+=a[i][j];
  32. n=n-p;
  33. m=m-q;
  34. res=sum;
  35. FOR(i,0,n,1){
  36. save=sum;
  37. FOR(j,1,m,1){
  38. sum=sum-(col[i+p][j]-col[i][j])+(col[i+p][j+q]-col[i][j+q]);
  39. if(sum<res) {vt=make_pair(i+1,j+1);res=sum;}
  40. }
  41. if(i!=n){
  42. sum=save-(row[i+1][q]-row[i+1][0])+(row[i+p+1][q]-row[i+p+1][0]);
  43. if(sum<res) {vt=make_pair(i+2,1);res=sum;};
  44. }
  45. }
  46. cout<<res<<'\n'<<vt.fi<<" "<<vt.se;
  47. }
  48.  
  49. int main()
  50. {
  51. READ();
  52. DO();
  53. }
  54.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
Standard output is empty