Submission #1264726

#TimeUsernameProblemLanguageResultExecution timeMemory
1264726dung3683833구경하기 (JOI13_watching)C++20
0 / 100
1097 ms320 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 2005; pair<int, int> dp[N][2]; int a[N]; int n, p, q; bool check(int w) { for (int i = 1; i <= n; i++) { dp[i][0] = make_pair((int)1e16, (int)1e16); dp[i][1] = make_pair((int)1e16, (int)1e16); } for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { if (a[i] - a[j] + 1 <= w) { if (dp[j-1][0].first + 1 < min(p+1, dp[i][0].first)) { dp[i][0] = dp[j-1][0]; dp[i][0].first++; } if (dp[j-1][1].first + 1 < min(p+1, dp[i][0].first)) { dp[i][0] = dp[j-1][1]; dp[i][0].first++; } } if (a[i] - a[j] + 1 <= 2*w) { if (dp[j-1][0].second + 1 < min(p+1, dp[i][1].second)) { dp[i][1] = dp[j-1][0]; dp[i][1].second++; } if (dp[j-1][1].second + 1 < min(p+1, dp[i][1].second)) { dp[i][1] = dp[j-1][1]; dp[i][1].second++; } } } } if (dp[n][0].first >= 1e16 && dp[n][1].second >= 1e16) return 0; return 1; } int bs() { int l = 0, r = 1e9; while (l <= r) { int mid = (l+r)/2; if (check(mid)) r = mid - 1; else l = mid + 1; } } signed main() { cin.tie(0)->sync_with_stdio(false); cin >> n >> p >> q; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a+1, a+n+1); cout << bs(); return 0; }

Compilation message (stderr)

watching.cpp: In function 'long long int bs()':
watching.cpp:47:1: warning: no return statement in function returning non-void [-Wreturn-type]
   47 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...