Submission #1090704

#TimeUsernameProblemLanguageResultExecution timeMemory
1090704Kuzeuy54_Zemljište (COCI22_zemljiste)C++17
0 / 70
4 ms4444 KiB
#include <bits/stdc++.h> using namespace std; #define inf 1e18 #define int long long const int mod=1e9+7; const int MAXN=505; vector<vector<int>>dp(MAXN,vector<int>(MAXN,0)); vector<vector<int>>mat(MAXN,vector<int>(MAXN,0)); int omg(int x1,int y1,int x2,int y2){ return dp[x2][y2]-dp[x1-1][y2]-dp[x2][y1-1]+dp[x1-1][y1-1]; } int32_t main(){ int x,y,a,b,ans=inf,temp; cin>>x>>y>>a>>b; if(a>b){ temp=a; a=b; b=temp; } for(int i=1;i<=x;i++) for(int j=1;j<=y;j++) cin>>mat[i][j]; for(int i=1;i<=x;i++) for(int j=1;j<=y;j++) dp[i][j]=mat[i][j]+dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]; for(int j=1;j<=y;j++) for(int i=1;i<=y;i++){ int l=1,r=1; while(r<=y){ int aq=omg(j,l,i,r); ans=min(abs(a-aq)+abs(b-aq),ans); if(aq>b){ l++; if(l>r) r++; } else if(aq>=a){ cout<<b-a; return 0; } else r++; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...