#include<bits/stdc++.h>
using namespace std;
#define int short int
#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 + 1, s[i] + down + 1)][max(1, e[i] - left)]--;
pref[max(1, s[i] - up)][min(c + 1, e[i] + right + 1)]--;
pref[min(r + 1, s[i] + down + 1)][min(c + 1, 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;
}
int mini(int a, int b){
return ((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 = 2 * c - j - 1, temp = i + j - 1;
for(int k = 0; k <= (2 * r - 1 - i); 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)) ans = mini(ans, temp + itr);
}
}
}
cout << ans;
}
Compilation message
cultivation.cpp: In function 'int main()':
cultivation.cpp:45:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
freopen("cultivation.inp", "r", stdin);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cultivation.cpp:46:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
freopen("cultivation.out", "w", stdout);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
416 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
416 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |