Submission #562489

#TimeUsernameProblemLanguageResultExecution timeMemory
562489gs15120Split the sequence (APIO14_sequence)C++14
100 / 100
1248 ms83100 KiB
#include<bits/stdc++.h> #define ll long long #define lll __int128 #define pi 3.1415926535897932384626 using namespace std; struct P{ int x,y,z; bool operator <(const P &a)const { //if(x!=a.x) return x<a.x; // return z<a.z; }; }; int dx[10]={1,0,-1,0,1,1,-1,-1},dy[10]={0,1,0,-1,1,-1,1,-1}; const ll mod=1000000007,Max=mod,Min=-Max; int a,b; int o[111111],c[222][111111]; ll dp[111111],ss[111111],aa[111111]; void f(int p,int n,int m,int x,int y) { if(n>m) return; int h=(n+m)/2; aa[h]=dp[h+1]+(ss[a]-ss[h])*o[h]; c[p][h]=h; for(int i=max(x,h);i<=y;i++) if(aa[h]<(ss[a]-ss[i])*(ss[i]-ss[h-1])+dp[i+1]) { aa[h]=(ss[a]-ss[i])*(ss[i]-ss[h-1])+dp[i+1]; c[p][h]=i; } f(p,n,h-1,x,c[p][h]); f(p,h+1,m,c[p][h],y); } int main() { scanf("%d %d",&a,&b); for(int t=1;t<=a;t++) { scanf("%d",&o[t]); ss[t]=ss[t-1]+o[t]; } for(int t=1;t<=a;t++) c[0][t]=a; for(int i=1;i<=b;i++) { aa[111111]; memset(aa,-1,sizeof(aa)); f(i,1,a,1,a); for(int t=1;t<=a;t++) dp[t]=aa[t]; } printf("%lld\n",dp[1]); int e=1; for(int t=b;t;t--) { //printf("%d %d\n",c[t][e],e); printf("%d ",c[t][e]); e=c[t][e]+1; } }

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:51:14: warning: statement has no effect [-Wunused-value]
   51 |     aa[111111];
      |     ~~~~~~~~~^
sequence.cpp:42:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |   scanf("%d %d",&a,&b);
      |   ~~~~~^~~~~~~~~~~~~~~
sequence.cpp:45:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |     scanf("%d",&o[t]);
      |     ~~~~~^~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...