比赛 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;
}