Submission #660252

# Submission time Handle Problem Language Result Execution time Memory
660252 2022-11-21T10:20:25 Z berr Zemljište (COCI22_zemljiste) C++17
0 / 70
1 ms 468 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int val[505][505], pr[505][505], pc[505][505];


int calc(int x, int y, int depth, int length)
{

    return pc[x+length-1][y+depth-1]-pc[x-1][y+depth-1]-pc[x+length-1][y-1]+pc[x-1][y-1];

}
int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    

    int n, m, a, b; cin>>n>>m>>a>>b;

    int ans=2e18;


    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            cin>>val[i][j];
        }
    }

    for(int i=1; i<=n+2; i++)
    {
        for(int j=1; j<=m+2; j++)
        {
            pr[i][j]=pr[i][j-1]+val[i][j];
        }
    }

    for(int j=1; j<=m+2; j++)
    {
        for(int i=1; i<=n+2; i++)
        {
            pc[i][j]+=pc[i-1][j]+pr[i][j];
        }
    }
    for(int i=1; i<=n; i++)
    {
        for(int l=i; l<=n; l++)
        {
            int h=0;

            for(int j=1; j<=m; j++)
            {
                while((pc[l][j]-pc[i-1][j])-(pc[l][h]-pc[i-1][h])>b&&l<=n) l++;
                int x=(pc[l][j]-pc[i-1][j])-(pc[l][h]-pc[i-1][h]);
                ans=min(ans, (abs(b-x)+abs(a-x)));

                if(h)
                {
                    int x=(pc[l][j]-pc[i-1][j])-(pc[l][h-1]-pc[i-1][h-1]);
                    ans=min(ans, abs(b-x)+abs(a-x));  
                }
            }   

        }    
    }
    cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -