Submission #869207

#TimeUsernameProblemLanguageResultExecution timeMemory
869207sleepntsheepBigger segments (IZhO19_segments)C11
100 / 100
106 ms10324 KiB
#include <stdio.h> #define N 500001 i,j,n,dp[N];long long a[N],fw[N],x,c,p; u(p){for (;p<N;p+=p&-p) fw[p]-=(fw[p]-x)*(x<fw[p]);} s(){for(int j=(c=0,p=1e18,1<<19);j;j>>=1)if(c+j<=n&&(fw[j+c]<p?fw[j+c]:p)>x)c+=j,p=(fw[c]<p?fw[c]:p);return c+1;} main(){scanf("%d",&n);for(;++i<N;fw[i]=1e18);for(i=1;i<=n;++i)scanf("%lld",a+i),x=a[i]+=a[i-1],dp[i]=1+dp[j=n+1-s(),j>0?j:(j=0)],x=2*a[i]-a[j],u(n-i+1);return printf("%d",dp[n])*0; }

Compilation message (stderr)

segments.c:3:1: warning: data definition has no type or storage class
    3 | i,j,n,dp[N];long long a[N],fw[N],x,c,p;
      | ^
segments.c:3:1: warning: type defaults to 'int' in declaration of 'i' [-Wimplicit-int]
segments.c:3:3: warning: type defaults to 'int' in declaration of 'j' [-Wimplicit-int]
    3 | i,j,n,dp[N];long long a[N],fw[N],x,c,p;
      |   ^
segments.c:3:5: warning: type defaults to 'int' in declaration of 'n' [-Wimplicit-int]
    3 | i,j,n,dp[N];long long a[N],fw[N],x,c,p;
      |     ^
segments.c:3:7: warning: type defaults to 'int' in declaration of 'dp' [-Wimplicit-int]
    3 | i,j,n,dp[N];long long a[N],fw[N],x,c,p;
      |       ^~
segments.c:4:1: warning: return type defaults to 'int' [-Wimplicit-int]
    4 | u(p){for (;p<N;p+=p&-p) fw[p]-=(fw[p]-x)*(x<fw[p]);}
      | ^
segments.c: In function 'u':
segments.c:4:1: warning: type of 'p' defaults to 'int' [-Wimplicit-int]
segments.c: At top level:
segments.c:5:1: warning: return type defaults to 'int' [-Wimplicit-int]
    5 | s(){for(int j=(c=0,p=1e18,1<<19);j;j>>=1)if(c+j<=n&&(fw[j+c]<p?fw[j+c]:p)>x)c+=j,p=(fw[c]<p?fw[c]:p);return c+1;}
      | ^
segments.c:6:1: warning: return type defaults to 'int' [-Wimplicit-int]
    6 | main(){scanf("%d",&n);for(;++i<N;fw[i]=1e18);for(i=1;i<=n;++i)scanf("%lld",a+i),x=a[i]+=a[i-1],dp[i]=1+dp[j=n+1-s(),j>0?j:(j=0)],x=2*a[i]-a[j],u(n-i+1);return printf("%d",dp[n])*0; }
      | ^~~~
segments.c: In function 'u':
segments.c:4:52: warning: control reaches end of non-void function [-Wreturn-type]
    4 | u(p){for (;p<N;p+=p&-p) fw[p]-=(fw[p]-x)*(x<fw[p]);}
      |                                                    ^
segments.c: In function 'main':
segments.c:6:8: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
    6 | main(){scanf("%d",&n);for(;++i<N;fw[i]=1e18);for(i=1;i<=n;++i)scanf("%lld",a+i),x=a[i]+=a[i-1],dp[i]=1+dp[j=n+1-s(),j>0?j:(j=0)],x=2*a[i]-a[j],u(n-i+1);return printf("%d",dp[n])*0; }
      |        ^~~~~~~~~~~~~~
segments.c:6:63: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
    6 | main(){scanf("%d",&n);for(;++i<N;fw[i]=1e18);for(i=1;i<=n;++i)scanf("%lld",a+i),x=a[i]+=a[i-1],dp[i]=1+dp[j=n+1-s(),j>0?j:(j=0)],x=2*a[i]-a[j],u(n-i+1);return printf("%d",dp[n])*0; }
      |                                                               ^~~~~~~~~~~~~~~~~
#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...