제출 #1206034

#제출 시각아이디문제언어결과실행 시간메모리
1206034minhpkGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int a; int z[1000005]; int cost[1000005]; int cur[1000005]; int cost1[1000005]; int cur1[1000005]; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> a; for (int i=1;i<=a;i++){ cin >> z[i]; } for (int i=1;i<=a;i++){ cost[i]=cost[i-1]; if (cur[i-1]>=z[i]+cost[i]){ cost[i]+=(cur[i-1]-(z[i]+cost[i]))+1; } cur[i]=z[i]+cost[i]; } for (int i=a;i>=1;i--){ cost1[i]=cost1[i+1]; if (cur1[i+1]>=z[i]+cost1[i]){ cost1[i]+=(cur1[i+1]-(z[i]+cost1[i]))+1; } cur1[i]=z[i]+cost1[i]; } int min1=min(cost[a],cost1[1]); // cout << cost[a] << "\n"; for (int i=2;i<a;i++){ int pre=z[i]+cost[i-1]+cost1[i+1]; int val=cost[i-1]+cost1[i+1]; int p=max(cur[i-1],cur1[i+1]); if (pre<=p){ val+= (p-pre)+1; } min1=min(min1,val); } cout << min1 << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...