Submission #1225601

#TimeUsernameProblemLanguageResultExecution timeMemory
1225601julianFinancial Report (JOI21_financial)C++20
28 / 100
4111 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] = -1; dp[0][1] = a[0]; for (ll i = 1; i < n; i++) { dp[i][0] = -1; for (ll k = max(i - d, 0ll); k < i; k++) { for (ll j = 1; j <= k + 2; j++) { 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] = a[i]; } } } } /* for (ll j = 0; j <= n; j++) { for (ll i = 0; i < n; i++) { printf("%4lld ", min(dp[i][j], 9999ll)); } printf("\n"); }*/ 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...