#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
//#define getchar() getchar_unlocked()
using namespace std;
ll n,k,i,a[101010],p[101010],M,C,opt,j,vs;
ll d[2][100010],te,seb;
int op[201][100010],poi;
int v[202];
pair<pair<ll,ll> ,int> vt[101010];
pair<pair<ll,ll> ,int> L1,L2,L3;
bool bo;
void bt(ll aa,ll bb)
{
ll ii,h=0;
for(ii=0;ii<k;ii++)
{
v[h]=op[aa][bb];
h++;
bb=op[aa][bb]+1;
aa--;
}
}
inline void fs(ll& p) {
static char c;
while ((c = getchar()) < '0');
for (p = c-'0'; (c = getchar()) >= '0'; p = p*10+c-'0');
}
int main()
{
// ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//cin>>n>>k;
fs(n);
fs(k);
for(i=1;i<=n;i++)
{
fs(a[i]);
// cin>>a[i];
p[i]=p[i-1]+a[i];
}
pair<pair<ll,ll>,ll> aa;
ll ava;
for(i=1;i<=k;i++)
{
// vt.clear();
// vt.reserve(n);
poi=0;
vs=0;
te=0;
seb=0;
for(j=n-1;j>=1;j--)
{
M=p[j];
C=p[j]*p[n]-p[j]*p[j]+d[(i-1)&1][j+1];
aa=mp(mp(M,C),j);
bo=0;
while(vs>=2)
{
L1=vt[vs-1];
L2=vt[vs-2];
L3=aa;
if((L2.fi.se-L1.fi.se)*(L2.fi.fi-L3.fi.fi)<(L3.fi.se-L2.fi.se)*(L1.fi.fi-L2.fi.fi))
break;
// if(!bo&&L2.se>seb){te--;bo=1;}
poi--;
//vt.pop_back();
vs--;
}
vt[poi]=aa;
poi++;
//vt.push_back(aa);
vs++;
ava=p[j-1];
if(te==-1)
te=0;
while(te<vs-1)
{
L1=vt[te];
L2=vt[te+1];
if((L2.fi.se-L1.fi.se)>=(L1.fi.fi-L2.fi.fi)*ava)
te++;
else
break;
}
seb=vt[te].se;
opt=te;
te--;
op[i][j]=vt[opt].se;
d[i&1][j]=(vt[opt].fi.fi*p[j-1]+vt[opt].fi.se-p[j-1]*p[n]);
}
}
cout<<d[k%2][1]<<"\n";
bt(k,1);
for(i=0;i<k;i++)
if(i==k-1)
cout<<v[i]<<"\n";
else
cout<<v[i]<<" ";
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
376 KB |
contestant found the optimal answer: 108 == 108 |
2 |
Correct |
1 ms |
376 KB |
contestant found the optimal answer: 999 == 999 |
3 |
Correct |
1 ms |
424 KB |
contestant found the optimal answer: 0 == 0 |
4 |
Correct |
1 ms |
440 KB |
contestant found the optimal answer: 1542524 == 1542524 |
5 |
Correct |
2 ms |
496 KB |
contestant found the optimal answer: 4500000000 == 4500000000 |
6 |
Correct |
1 ms |
532 KB |
contestant found the optimal answer: 1 == 1 |
7 |
Correct |
1 ms |
532 KB |
contestant found the optimal answer: 1 == 1 |
8 |
Correct |
2 ms |
596 KB |
contestant found the optimal answer: 1 == 1 |
9 |
Correct |
2 ms |
600 KB |
contestant found the optimal answer: 100400096 == 100400096 |
10 |
Correct |
1 ms |
600 KB |
contestant found the optimal answer: 900320000 == 900320000 |
11 |
Correct |
1 ms |
604 KB |
contestant found the optimal answer: 3698080248 == 3698080248 |
12 |
Correct |
1 ms |
620 KB |
contestant found the optimal answer: 3200320000 == 3200320000 |
13 |
Correct |
2 ms |
620 KB |
contestant found the optimal answer: 140072 == 140072 |
14 |
Correct |
1 ms |
620 KB |
contestant found the optimal answer: 376041456 == 376041456 |
15 |
Correct |
2 ms |
620 KB |
contestant found the optimal answer: 805 == 805 |
16 |
Correct |
2 ms |
620 KB |
contestant found the optimal answer: 900189994 == 900189994 |
17 |
Correct |
2 ms |
620 KB |
contestant found the optimal answer: 999919994 == 999919994 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
620 KB |
contestant found the optimal answer: 1093956 == 1093956 |
2 |
Correct |
2 ms |
624 KB |
contestant found the optimal answer: 302460000 == 302460000 |
3 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 122453454361 == 122453454361 |
4 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 93663683509 == 93663683509 |
5 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 1005304678 == 1005304678 |
6 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 933702 == 933702 |
7 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 25082842857 == 25082842857 |
8 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 687136 == 687136 |
9 |
Correct |
1 ms |
876 KB |
contestant found the optimal answer: 27295930079 == 27295930079 |
10 |
Correct |
2 ms |
876 KB |
contestant found the optimal answer: 29000419931 == 29000419931 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
876 KB |
contestant found the optimal answer: 610590000 == 610590000 |
2 |
Correct |
1 ms |
876 KB |
contestant found the optimal answer: 311760000 == 311760000 |
3 |
Correct |
3 ms |
1776 KB |
contestant found the optimal answer: 1989216017013 == 1989216017013 |
4 |
Correct |
2 ms |
1776 KB |
contestant found the optimal answer: 1499437552673 == 1499437552673 |
5 |
Correct |
3 ms |
1776 KB |
contestant found the optimal answer: 1019625819 == 1019625819 |
6 |
Correct |
3 ms |
1776 KB |
contestant found the optimal answer: 107630884 == 107630884 |
7 |
Correct |
3 ms |
1900 KB |
contestant found the optimal answer: 475357671774 == 475357671774 |
8 |
Correct |
2 ms |
1900 KB |
contestant found the optimal answer: 193556962 == 193556962 |
9 |
Correct |
2 ms |
1900 KB |
contestant found the optimal answer: 482389919803 == 482389919803 |
10 |
Correct |
2 ms |
1900 KB |
contestant found the optimal answer: 490686959791 == 490686959791 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
1900 KB |
contestant found the optimal answer: 21503404 == 21503404 |
2 |
Correct |
2 ms |
1900 KB |
contestant found the optimal answer: 140412195 == 140412195 |
3 |
Correct |
7 ms |
2412 KB |
contestant found the optimal answer: 49729674225461 == 49729674225461 |
4 |
Correct |
2 ms |
2412 KB |
contestant found the optimal answer: 37485571387523 == 37485571387523 |
5 |
Correct |
8 ms |
2412 KB |
contestant found the optimal answer: 679388326 == 679388326 |
6 |
Correct |
7 ms |
2412 KB |
contestant found the optimal answer: 4699030287 == 4699030287 |
7 |
Correct |
8 ms |
2412 KB |
contestant found the optimal answer: 12418819758185 == 12418819758185 |
8 |
Correct |
8 ms |
2412 KB |
contestant found the optimal answer: 31093317350 == 31093317350 |
9 |
Correct |
3 ms |
2412 KB |
contestant found the optimal answer: 12194625429236 == 12194625429236 |
10 |
Correct |
4 ms |
2412 KB |
contestant found the optimal answer: 12345131038664 == 12345131038664 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
2412 KB |
contestant found the optimal answer: 1818678304 == 1818678304 |
2 |
Correct |
4 ms |
2412 KB |
contestant found the optimal answer: 1326260195 == 1326260195 |
3 |
Correct |
47 ms |
9836 KB |
contestant found the optimal answer: 4973126687469639 == 4973126687469639 |
4 |
Correct |
3 ms |
9836 KB |
contestant found the optimal answer: 3748491676694116 == 3748491676694116 |
5 |
Correct |
41 ms |
9836 KB |
contestant found the optimal answer: 1085432199 == 1085432199 |
6 |
Correct |
44 ms |
9836 KB |
contestant found the optimal answer: 514790755404 == 514790755404 |
7 |
Correct |
50 ms |
9836 KB |
contestant found the optimal answer: 1256105310476641 == 1256105310476641 |
8 |
Correct |
32 ms |
9836 KB |
contestant found the optimal answer: 3099592898816 == 3099592898816 |
9 |
Correct |
41 ms |
9836 KB |
contestant found the optimal answer: 1241131419367412 == 1241131419367412 |
10 |
Correct |
49 ms |
9836 KB |
contestant found the optimal answer: 1243084101967798 == 1243084101967798 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
9836 KB |
contestant found the optimal answer: 19795776960 == 19795776960 |
2 |
Correct |
17 ms |
9836 KB |
contestant found the optimal answer: 19874432173 == 19874432173 |
3 |
Correct |
465 ms |
84468 KB |
contestant found the optimal answer: 497313449256899208 == 497313449256899208 |
4 |
Correct |
18 ms |
84468 KB |
contestant found the optimal answer: 374850090734572421 == 374850090734572421 |
5 |
Correct |
650 ms |
84468 KB |
contestant found the optimal answer: 36183271951 == 36183271951 |
6 |
Correct |
427 ms |
84468 KB |
contestant found the optimal answer: 51629847150471 == 51629847150471 |
7 |
Correct |
483 ms |
84468 KB |
contestant found the optimal answer: 124074747024496432 == 124074747024496432 |
8 |
Correct |
337 ms |
84468 KB |
contestant found the optimal answer: 309959349080800 == 309959349080800 |
9 |
Correct |
366 ms |
84468 KB |
contestant found the optimal answer: 124113525649823701 == 124113525649823701 |
10 |
Correct |
488 ms |
84468 KB |
contestant found the optimal answer: 124309619349406845 == 124309619349406845 |