Submission #586144

#TimeUsernameProblemLanguageResultExecution timeMemory
586144hibikiGrowing Vegetables is Fun 4 (JOI21_ho_t1)C++11
100 / 100
31 ms6928 KiB
#include<bits/stdc++.h>
using namespace std;

int n;
long long a[200005];
long long dpl[200005], dpr[200005];

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

Compilation message (stderr)

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