Submission #585906

#TimeUsernameProblemLanguageResultExecution timeMemory
585906krit3379Growing Vegetables is Fun 4 (JOI21_ho_t1)C++17
0 / 100
0 ms212 KiB
#include<bits/stdc++.h>
using namespace std;
#define N 200005

long long a[N],dp1[N],dp2[N],ans=1e18;

int main(){
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)scanf("%lld",&a[i]);
    for(i=2;i<=n;i++)dp1[i]+=dp1[i-1]+max(a[i-1]-a[i]+1,0ll);
    for(i=n-1;i>0;i--)dp2[i]+=dp2[i+1]+max(a[i+1]-a[i]+1,0ll);
    ans=min(dp1[n],dp2[1]);
    for(i=1;i<n;i++)ans=min(ans,max(dp1[i],dp2[i])+max(a[i+1]+dp2[i]-a[i]-dp1[i]+1,0ll));
    printf("%lld",ans);
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:9:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
Main.cpp:10:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     for(i=1;i<=n;i++)scanf("%lld",&a[i]);
      |                      ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...