Submission #1288958

#TimeUsernameProblemLanguageResultExecution timeMemory
1288958ofozDischarging (NOI20_discharging)C++20
36 / 100
1096 ms15960 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O2") using namespace std; #define int long long #define ll long long #define vc vector<char> #define vi vector<int> #define vb vector<bool> #define pi pair<int, int> #define ppi pair<pair<int, int>, int> #define pip pair<int, pair<int, int>> #define multi multiset<int> #define multp multiset<pi> #define endl '\n' mt19937 rng(chrono::system_clock::now().time_since_epoch().count()); const int MOD = 1e9 + 7; const int MAXN = 1e6+5; const int S = 350; void solve() { int n; cin >> n; vi a(n+1); for (int i = 1; i <= n; i++) cin >> a[i]; vi dp(n+1, INT64_MAX); dp[0] = 0; for (int i = 1; i <= n; i++) { int mx = a[i]; for (int j = i-1; j >= 0; j--) { dp[i] = min(dp[i], dp[j] + (n - j) * mx); if (j != 0) { mx = max(mx, a[j]); } } } cout << dp[n] << endl; } /* */ signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); bool test = 0; int t; if (!test) t = 1; else cin >> t; while (t--) { solve(); } 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...