Submission #792214

#TimeUsernameProblemLanguageResultExecution timeMemory
792214cig32Zemljište (COCI22_zemljiste)C++17
70 / 70
391 ms4812 KiB
#pragma GCC optimize("Ofast") #include "bits/stdc++.h" using namespace std; #define int long long const int MAXN = 2e5 + 10; const int MOD = 1e9 + 7; mt19937_64 rng((int)std::chrono::steady_clock::now().time_since_epoch().count()); int rnd(int x, int y) { int u = uniform_int_distribution<int>(x, y)(rng); return u; } int bm(int b, int p) { if(p==0) return 1 % MOD; int r = bm(b, p >> 1); if(p&1) return (((r*r) % MOD) * b) % MOD; return (r*r) % MOD; } int inv(int b) { return bm(b, MOD-2); } int fastlog(int x) { return (x == 0 ? -1 : 64 - __builtin_clzll(x) - 1); } void printcase(int i) { cout << "Case #" << i << ": "; } int c[501][501]; int sum(int r1,int c1,int r2,int c2){ return c[r2][c2]-c[r2][c1-1]-c[r1-1][c2]+c[r1-1][c1-1]; } void solve(int tc) { int r,s,a,b; cin>>r>>s>>a>>b; for(int i=0;i<=r;i++)for(int j=0;j<=s;j++)c[i][j]=0; for(int i=1;i<=r;i++){ for(int j=1;j<=s;j++){ int x; cin>>x; c[i][j]=c[i-1][j]+c[i][j-1]-c[i-1][j-1]+x; } } if(a>b)swap(a,b); int ans=1e18; for(int u=1;u<=r;u++){ for(int d=u;d<=r;d++){ int j=0; for(int i=1;i<=s;i++){ j=max(j,i); ans=min(ans,abs(a - sum(u,i,d,j)) + abs(b - sum(u,i,d,j))); while(j+1<=s && abs(a-sum(u,i,d,j+1))+abs(b-sum(u,i,d,j))<abs(a-sum(u,i,d,j))+abs(b-sum(u,i,d,j))){ j++; ans=min(ans,abs(a-sum(u,i,d,j))+abs(b-sum(u,i,d,j))); } } } } cout<<ans<<"\n"; } int32_t main() { ios::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; for(int i=1; i<=t; i++) solve(i); } // 勿忘初衷
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...