제출 #1179947

#제출 시각아이디문제언어결과실행 시간메모리
1179947bbartekGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define st first #define nd second #define pb push_back const int maxn = 2e5+7; ll liczby[maxn]; ll pref[maxn]; ll wys_pref[maxn]; ll suf[maxn]; ll wys_suf[maxn]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;i++){ cin>>liczby[i]; } ll licznik = 0; pref[1] = 0; wys_pref[1] = liczby[1]; for(int i=2;i<=n;i++){ if(liczby[i] <= liczby[i-1]){ licznik += liczby[i-1]-liczby[i]+1; } pref[i] = licznik; wys_pref[i] = liczby[i] + licznik; } licznik = 0; suf[n] = 0; wys_suf[n] = liczby[n]; for(int i=n-1;i>=1;i--){ if(liczby[i] <= liczby[i+1]){ licznik += liczby[i+1]-liczby[i]+1; } suf[i] = licznik; wys_suf[i] = liczby[i] + licznik; } ll wyn = 1e9; ll akt; for(int i=1;i<=n;i++){ akt = pref[i] + suf[i]; if(wys_pref[i] > liczby[i] && wys_suf[i] > liczby[i]){ akt -= (max(wys_pref[i],wys_suf[i]) - min(wys_pref[i],wys_suf[i])); } wyn = min(wyn,akt); } cout<<wyn<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...