Submission #1272521

#TimeUsernameProblemLanguageResultExecution timeMemory
1272521ttooppZemljište (COCI22_zemljiste)C++20
0 / 70
1 ms580 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll n, m, a, b;

ll count(ll x){
    return abs(a-x)+abs(b-x);
}

int main(){

    cin >> n >> m >> a >> b;
    ll A[n+3][m+3];
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            cin >> A[i][j];
        }
    }
    ll pref[n+3][m+3];
    for(int j=1; j<=m; j++){
        pref[0][j]=0;
        for(int i=1; i<=n; i++){
            pref[i][j]=pref[i-1][j]+A[i][j];
        }
    }
    ll ans=1e18;
    for(int i=1; i<=n; i++){
        for(int x=i; x<=n; x++){
            ll l=1, r=1, sum=pref[x][1]-pref[i-1][1];
            //cout << sum <<" ";
            while(r+1<=m){
                if(sum> max(a,b)){
                    sum-=(pref[x][l]-pref[i-1][l]);
                    
                    l++;
                }else{
                    r++;
                    sum+=(pref[x][r]-pref[i-1][r]);
                }
                ans=min(ans, count(sum));
                //cout << ans <<" i:"<< i <<" x:"<< x <<" l:"<< l<<" r:"<<r<<endl;
            }
            //cout << i << " "<< x << " "<< ans <<endl;
        }
    }
    cout << ans <<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...