记录编号 314890 评测结果 AAAAAAAAAA
题目名称 书的复制 最终得分 100
用户昵称 GravatarNewBee 是否通过 通过
代码语言 C++ 运行时间 0.014 s
提交时间 2016-10-04 13:54:19 内存使用 0.26 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#define Cu fclose(stdin);fclose(stdout);return 0;
#define Begin freopen("books.in","r",stdin);freopen("books.out","w",stdout);chul();Cu;
using namespace std;
const int maxn=110;
struct op{
	int s,t;
}r[maxn];
int page[maxn];int m,k;
bool check(int x){
	int i=m,j=k,tot;
	while(i>0&&j>0){
		tot=0;
		r[j].t=i;
		while(i>0&&tot+page[i]<=x){
			tot+=page[i];
			i--;
		}
		r[j].s=i+1;
		j--;
	}
	if(i==0)return 1;
	return 0;
}
void JUDGE(){
	int i=1;
	if(r[1].s==1)return;
	while(((r[i].s==r[i].t)&&r[i].t==0)||(r[i].s>r[i].t)){
		r[i].s=r[i-1].t+1;
		r[i].t=r[i].s;
		r[i+1].s=r[i].t+1;
		i++;
	}
}
void chul(){
	scanf("%d%d",&m,&k);
	int l=0,ri=0;
	for(int i=1;i<=m;i++){
		scanf("%d",&page[i]);
		ri+=page[i];
	}
	int mid;
	while(l<ri){
		mid=(l+ri)>>1;
		if(check(mid)){
			ri=mid;
		}
		else l=mid+1;
	}
	memset(r,0,sizeof(r));
	check(ri);
	JUDGE();
	for(int i=1;i<=k;i++){
		printf("%d %d\n",r[i].s,r[i].t);
	}
}
int main(){
	Begin;
}