Submission #444361

#TimeUsernameProblemLanguageResultExecution timeMemory
444361fuad27Watching (JOI13_watching)C++14
100 / 100
579 ms32152 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int n, p, q; vector<int> A; vector<vector<int>> dp(2010, vector<int> (2010, 0)); bool can(int w) { int a = 0, b = 0; dp[0][0] = 0; int I = min(n, p); int J = min(n, q); for(int i = 0;i<=I;i++) { for(int j = 0;j<=J;j++) { if(i == 0 and j == 0) continue; if(i > 0) { a=dp[i-1][j]; b = a; while(a<n and A[b]+w-1>=A[a]) a++; } dp[i][j]=a; if(j > 0) { a=dp[i][j-1]; b = a; while(a<n and A[b]+2*w-1>=A[a]) a++; } dp[i][j]=max(a, dp[i][j]); } } return (dp[I][J]>=n); } int32_t main () { cin >> n >> p >> q; for(int i = 0;i<n;i++) { int ai; cin >> ai; A.push_back(ai); } sort(A.begin(), A.end()); int r = 1e9, l = 1, ans = 0; while(l<=r) { int mid = (l+r)/2; if(can(mid)) { ans = mid; r = mid - 1; } else { l = mid + 1; } } cout<<l<<endl; return 0; }

Compilation message (stderr)

watching.cpp: In function 'int32_t main()':
watching.cpp:43:22: warning: variable 'ans' set but not used [-Wunused-but-set-variable]
   43 |  int r = 1e9, l = 1, ans = 0;
      |                      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...