제출 #1318120

#제출 시각아이디문제언어결과실행 시간메모리
1318120hasanGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' #define dl double #define int long long #define ul uint_fast32_t #define ll int_fast64_t #define dll long double #define ull uint_fast64_t #define spektar this_thread::sleep_for(chrono::milliseconds(50)) void solve(){ int n; cin >> n; vector<ll> k(n); for(auto& i:k) cin >> i; vector<ll> k1=k,k2=k; vector<ll> kk1(n); vector<ll> kk2(n); kk1[0]=0; kk2[n-1]=0; ll max1=0; for(int i=1; i<n; i++){ ll s1=max(k1[i],k1[i-1]+1)-k1[i]; k1[i]=max(k1[i],k1[i-1]+1); kk1[i]=s1; } for(int i=n-2; i>=0; i--){ ll s1=max(k2[i],k2[i+1]+1)-k2[i]; k2[i]=max(k2[i],k2[i+1]+1); kk2[i]=s1; } vector<ll> pref1(n+1),pref2(n+1); pref1[0]=0; pref2[n]=0; for(int i=0; i<n; i++){ pref1[i+1]=pref1[i]+kk1[i]; } for(int i=n-1; i>=0; i--){ pref2[i]=pref2[i+1]+kk2[i]; } ll min1=1000000000000000000; for(int i=0; i<n; i++){ min1=min(min1,min(max(max(kk1[i],kk2[i]),pref1[i])+pref2[i+1],max(pref2[i+1],max(kk1[i],kk2[i]))+pref1[i])); } cout << min1 << endl; } signed main(){ //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t=1; //cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...