Submission #1272480

#TimeUsernameProblemLanguageResultExecution timeMemory
1272480raditya_noorZemljište (COCI22_zemljiste)C++20
0 / 70
1 ms332 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

ll cnt(ll x, ll h, ll w, ll c){
	return x - (h + w) + c;
}

ll dis(ll a, ll b, ll c){
	return abs(a - c) + abs(b - c);
}

int main(){
	int r, s; ll a, b; cin >> r >> s >> a >> b;
	ll c[r + 1][s + 1] = {{0}}; for(int i = 1; i <= r; i++) for(int j = 1; j <= s; j++) cin >> c[i][j];
	for(int i = 1; i <= r; i++){
		for(int j = 1; j <= s; j++){
			c[i][j] += c[i - 1][j] + c[i][j - 1] - c[i - 1][j - 1];
		}
	}
	ll ans = LLONG_MAX;
	for(int i = 1; i <= r; i++){
		for(int j = 1; j <= s; j++){
			for(int h = 0; h < i; h++){
				int l = 0, r = j - 1;
				while(l <= r){
					int md = (l + r) / 2;
					if(cnt(c[i][j], c[h][j], c[i][md], c[h][md]) < a){
						l = md + 1;
					}else if(b < cnt(c[i][j], c[h][j], c[i][md], c[h][md])){
						r = md - 1;
					}else break;
					ans = min(ans, dis(a, b, cnt(c[i][j], c[h][j], c[i][md], c[h][md])));
				}
			}
		}
	}
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...