Submission #290763

#TimeUsernameProblemLanguageResultExecution timeMemory
290763PKhingBigger segments (IZhO19_segments)C++14
37 / 100
1575 ms2688 KiB
#include<bits/stdc++.h>
#define ll long long
#define ii pair<ll,ll>
using namespace std;
ll tab[500005];
ll qs[500005];
ll dp[500005];
ll bf[500005];
int n;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld",&tab[i]);
        qs[i]=tab[i]+qs[i-1];
    }
    for(int i=1;i<=n;i++){
        for(int j=0;j<i;j++){
            if(qs[i]-qs[j]>=bf[j]){
                if(dp[i]<dp[j]+1){
                    dp[i]=dp[j]+1;
                    bf[i] = qs[i]-qs[j];
                }
                else if(dp[i]==dp[j]+1){
                    bf[i]=min(bf[i],qs[i]-qs[j]);
                }
            }
        }
        //printf("%lld",dp[i]);
    }
    printf("%lld",dp[n]);

}

Compilation message (stderr)

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