Submission #1225590

#TimeUsernameProblemLanguageResultExecution timeMemory
1225590julianFinancial Report (JOI21_financial)C++20
0 / 100
554 ms1114112 KiB
#include <iostream> #include <vector> #include <algorithm> #include <utility> #include <numeric> #include <climits> using namespace std; using ll = long long; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll n, d; cin >> n >> d; vector<ll> a(n); for (ll& i : a) { cin >> i; } vector<vector<ll>> dp(n, vector<ll>(n + 1, LLONG_MAX)); dp[0][0] = 0; dp[0][1] = a[0]; for (ll i = 1; i < n; i++) { dp[i][0] = 0; for (ll k = max(i - d, 0ll); k < i; k++) { for (ll j = 1; j <= k + 2; j++) { //if (i == n - 1) // cout << i << " " << j << " " << k << " " << (j <= k + 1 && a[i] <= dp[k][j]) << endl; if (j <= k + 1 && a[i] <= dp[k][j]) { dp[i][j] = min(dp[i][j], max(a[i], dp[k][j])); } if (a[i] > dp[k][j - 1]) { dp[i][j] = min(dp[i][j], a[i]); } } } } cout << (find(dp[n - 1].begin(), dp[n - 1].end(), LLONG_MAX) - dp[n - 1].begin()) - 1 << 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...