제출 #1320474

#제출 시각아이디문제언어결과실행 시간메모리
1320474suleyman_1951Growing Vegetables is Fun 4 (JOI21_ho_t1)C++20
100 / 100
17 ms5068 KiB
// TEMPLATE #include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_set_char tree<char, null_type, less<char>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_set_string tree<string, null_type, less<string>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_multiset_char tree<char, null_type, less_equal<char>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_multiset_string tree<string, null_type, less_equal<string>, rb_tree_tag, tree_order_statistics_node_update> mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define int long long #define ldouble long double #define ll unsigned long long // #define int int_fast32_t #define endl '\n' #define pii pair<int, int> #define F first #define S second void solve() { int n; cin >> n; vector<int> vt(n); for (int i = 0; i < n; i++) { cin >> vt[i]; } vector<int> pref(n); pref[0] = 0; for (int i = 1; i < n; i++) { if (vt[i] <= vt[i - 1]) { pref[i] = pref[i - 1] + vt[i - 1] + 1 - vt[i]; } else { pref[i] = pref[i - 1]; } } vector<int> suf(n); suf[n - 1] = 0; for (int i = n - 2; i >= 0; i--) { if (vt[i] <= vt[i + 1]) { suf[i] = suf[i + 1] + vt[i + 1] + 1 - vt[i]; } else { suf[i] = suf[i + 1]; } } int ans = LLONG_MAX; for (int i = 0; i < n; i++) { ans = min(ans, max(pref[i], suf[i])); } cout << ans << endl; } signed main() { ios::sync_with_stdio(false); cin.tie(0); int T = 1; // cin >> T; while (T--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...