比赛 |
20170919普及组 |
评测结果 |
WWWWWWEEEE |
题目名称 |
划分数列 |
最终得分 |
0 |
用户昵称 |
雾茗 |
运行时间 |
0.334 s |
代码语言 |
C++ |
内存使用 |
0.48 MiB |
提交时间 |
2017-09-19 21:28:26 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
char s[100009];
long long pd,dq,n,k,x,c[10000]={0},maxx;
int main()
{
freopen("seqa.in","r",stdin);
freopen("seqa.out","w",stdout);
cin>>n>>k;
long long max=0;
for(int i=1;i<=n;i++){
cin>>s[i];
max=max+s[i];
}
pd=max/k;
dq=0;
int t=1;
for(int o=1;o<=n;o++){
dq=dq+s[o];
if(abs(pd-dq)>abs(pd-dq+s[o+1])){
o++;
dq=dq+s[o];
c[t]=dq;
t++;
x=o;
}
else{
c[t]=dq;
t++;
x=o;
}
if(abs(c[t]-pd-s[x])<abs(c[t]-pd)&&abs(c[t-1]-pd+s[x])<abs(c[t]-pd)){
c[t]=c[t]-s[x];
c[t-1]=c[t]+s[x];
}
}
for(int f=1;f<=k;f++){
if(maxx<c[f]){
maxx=c[f];
}
}
cout<<maxx%10;
return 0;
}