Submission #1294870

#TimeUsernameProblemLanguageResultExecution timeMemory
1294870kian2009Cultivation (JOI17_cultivation)C++20
30 / 100
2094 ms580 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 3e2 + 10; const int INF = 2e9; int n, r, c; pair<int, int> p[MAXN]; vector<int> h; void input() { cin >> r >> c >> n; for (int i = 0; i < n; i++) cin >> p[i].second >> p[i].first; sort(p, p + n); } int find(int x, int y) { int l1 = 0, r1 = 0, s1 = 0; for (int i = 1; i <= r; i++) { h.clear(); for (int j = 0; j < n; j++) { if ((p[j].second <= i && p[j].second + y >= i) || (p[j].second >= i && p[j].second - x <= i)) h.push_back(p[j].first); } if (h.empty()) return INF; l1 = max(l1, h[0] - 1); r1 = max(r1, c - h.back()); s1 = max({s1, l1, r1}); for (int j = 1; j < h.size(); j++) s1 = max(s1, h[j] - h[j - 1] - 1); } return max(s1, l1 + r1); } int findAns() { int res = INF; for (int i = 0; i < r; i++) for (int j = 0; j < r; j++) res = min(res, find(i, j) + i + j); return res; } int main() { ios::sync_with_stdio(false); cin.tie(0); input(); cout << findAns() << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...