Submission #1243353

#TimeUsernameProblemLanguageResultExecution timeMemory
1243353Bui_Quoc_CuongGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
61 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define uni(a) sort(ALL(a)),a.resize(unique(ALL(a))-a.begin()) #define FOR(i,a,b) for(int i=(int)(a);i<=(int)(b);i++) #define FORD(i,a,b) for(int i=(int)(a);i>=(int)(b);i--) #define FORN(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define ALL(a) a.begin(),a.end() #define tct template<class T> tct bool mini(T& a,T b){return (a>b)?a=b,1:0;} tct bool maxi(T& a,T b){return (a<b)?a=b,1:0;} const long long INF = 1e18, base = 311, mod = 1e9 + 7; const int maxn = 1e6 + 5,oo = 2e9, LG = 20; int n; int a[maxn], h[maxn]; void process(){ cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; } ll ans = 1e18; FOR(i, 1, n){ vector <int> left, right; for(int j = 1; j <= i; j++){ if(a[j] <= a[j - 1]) left.push_back(a[j - 1] + 1 - a[j]); } for(int j = n; j >= i; j--){ if(a[j] <= a[j + 1]) right.push_back(a[j + 1] + 1 - a[j]); } sort(ALL(left)); sort(ALL(right)); reverse(ALL(left)); reverse(ALL(right)); ll sum = 0; int l = 0, r = 0; for(; r < (int)right.size(); r++){ if(l > (int)left.size() - 1) break; sum+= max(right[r], left[l]); l++; } for(; l < (int)left.size(); l++) sum+= left[l]; for(; r < (int)right.size(); r++) sum+= right[r]; ans = min(ans, sum); } cout << ans; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); #define taskname "kieuoanh" if(fopen(taskname".inp", "r")){ freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout); } process(); return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:54:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |         freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:54:53: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |         freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout);
      |                                              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...