Submission #739837

#TimeUsernameProblemLanguageResultExecution timeMemory
739837blueSparklers (JOI17_sparklers)C++17
50 / 100
187 ms262144 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector<ll>; using vi = vector<int>; using vvll = vector<vll>; using vvi = vector<vi>; #define sz(x) int(x.size()) int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll N, K, T; cin >> N >> K >> T; vll X(1+N); for(int i = 1; i <= N; i++) { cin >> X[i]; } ll lo = -1, hi = ((((1'000'000'000'000'000'000LL / 2LL + 1) / N) + 1) / T) + 1; // ll lo = 1, hi = 1'000'000'000'000'000'000LL/N; while(hi - lo > 1) { ll mid = (lo + hi)/2; vvll dp(1+N, vll(1+N, 0)); // for(ll l = N; l >= 1; l--) for(ll l = K; l >= 1; l--) { for(ll r = K; r <= N; r++) { if(l == r) dp[l][r] = 1; else if(2LL * T * (r-l) * mid < X[r] - X[l]) // else if(2LL * (r-l) * mid < X[r] - X[l]) dp[l][r] = 0; else dp[l][r] = dp[l+1][r] || dp[l][r-1]; } } if(dp[1][N] == 1) hi = mid; else lo = mid; } cout << hi << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...