This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ins insert
#define er erase
typedef pair<int, int> ii;
typedef pair<ii, int> iii;
typedef pair<ii, ii> iiii;
int n, r, c, s[305], e[305], pref[45][45], ans = 10005;
bool ck(int up, int left, int down, int right){
for(int i = 1; i <= r; ++i){
for(int j = 1; j <= c; ++j) pref[i][j] = 0;
}
for(int i = 1; i <= n; ++i){
pref[max(1, s[i] - up)][max(1, e[i] - left)]++;
pref[min(r, s[i] + down) + 1][max(1, e[i] - left)]--;
pref[max(1, s[i] - up)][min(c, e[i] + right) + 1]--;
pref[min(r, s[i] + down) + 1][min(c, e[i] + right) + 1]++;
//cout << max(1, s[i] - up) << " " << max(1, e[i] - left) << " " << min(r + 1, s[i] + down + 1) << " " << min(c + 1, e[i] + right) << "\n";
}
for(int i = 1; i <= r; ++i){
for(int j = 1; j <= c; ++j) pref[i][j] += pref[i][j - 1];
}
for(int i = 1; i <= r; ++i){
for(int j = 1; j <= c; ++j){
pref[i][j] += pref[i - 1][j];
if(!pref[i][j]) return 0;
}
}
return 1;
}
void mini(int &a, int b){
a = ((a < b) ? a : b);
}
signed main(){
//freopen("cultivation.inp", "r", stdin);
//freopen("cultivation.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin >> r >> c >> n;
for(int i = 1; i <= n; i++) cin >> s[i] >> e[i];
//cout << ck(0, 1, 2, 2) << "\n";
for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
int itr = c - 1, temp = i + j - 1;
for(int k = 0; k <= r - 1; k++){
while(itr >= 0 && ck(i, j, k, itr)) --itr;
++itr;
++temp;
//cout << i << " " << j << " " << k << " " << itr << " " << temp + itr << "\n";
if(ck(i, j, k, itr)) mini(ans, temp + itr);
}
}
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |