제출 #1288952

#제출 시각아이디문제언어결과실행 시간메모리
1288952ofozDischarging (NOI20_discharging)C++20
0 / 100
1097 ms15952 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); for (int &x : a) cin >> x; vi dp(n+1, INT64_MAX); dp[n] = 0; for (int i = n-1; i >= 0; i--) { int mx = a[i]; for (int j = i+1; j <= n; j++) { dp[i] = min(dp[i], dp[j] + (n - i) * mx); if (j != n) mx = max(mx, a[j]); } } cout << a[0] * 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...