Submission #1294923

#TimeUsernameProblemLanguageResultExecution timeMemory
1294923Hamed_GhaffariSparklers (JOI17_sparklers)C++20
50 / 100
21 ms1344 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define X first #define Y second #define mid ((l+r)>>1) #define lc id<<1 #define rc lc|1 #define all(x) x.begin(), x.end() #define SZ(x) int(x.size()) const int MXN = 1e3+5; int n, k; ll t, x[MXN]; bool dp[MXN][MXN]; bool check(ll s) { dp[k][k] = 1; for(int ln=2; ln<=n; ln++) for(int l=max(1, k-ln+1), r=l+ln-1; r<=n && r<=k+ln-1; l++, r++) { dp[l][r] = 0; if(__lg(r-l) + __lg(t*s*2) < 40 && (x[r]-x[l]) > (r-l)*t*s*2) continue; dp[l][r] = dp[l+1][r] | dp[l][r-1]; } return dp[1][n]; } int32_t main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); cin >> n >> k >> t; for(int i=1; i<=n; i++) cin >> x[i]; int l=0, r=x[n]; while(r-l>1) (check(mid) ? r : l) = mid; cout << r << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...