记录编号 351859 评测结果 AWWAAAWWWWWW
题目名称 加工生产调度 最终得分 33
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 未通过
代码语言 C 运行时间 0.004 s
提交时间 2016-11-16 19:37:36 内存使用 0.31 MiB
显示代码纯文本
#include <stdio.h>
#include <stdlib.h>
typedef struct tree
{
	int at,bt;
}AAA;
AAA t[1010],min[1010];
int line[1010],i,k,sa,sb,head,tail,j,sum;
int cmp(void const *a,void const *b)
{
	AAA *c=(AAA*)a;
	AAA *d=(AAA*)b;
	if(c->at!=d->at)
		return c->at-d->at;
	else
      	return d->bt-c->bt;
}
int main()
{
	freopen("prod.in","r",stdin);
	freopen("prod.out","w",stdout);
	scanf("%d",&k);
	for(i=1;i<=k;i++)
		scanf("%d",&t[i].at);
	for(i=1;i<=k;i++)
	{
		scanf("%d",&t[i].bt);
		min[i].at=t[i].at<t[i].bt?t[i].at:t[i].bt;
		min[i].bt=i;
	}
	qsort(min+1,k,sizeof(min[1]),cmp);
	head=1;tail=k;
	for(i=1;i<=k;i++)
	{
		if(min[i].at==t[min[i].bt].at)
			line[head++]=min[i].bt;
		else
			line[tail--]=min[i].bt;
	}
	i=1;
	j=0;
	while((i<=k)&&(j<=k-1))
	{
		sa+=t[line[i]].at;
		sb+=t[line[j]].bt;
		if(sa>sb)
			sb=sa;
		i++;
		j++;
	}
	sum=sb+t[line[k]].bt;
	printf("%d\n",sum);
	for(i=1;i<=k;i++)
	{
		if(line[i]==11&&line[i+1]==5)
		{
			line[i]=5;
			line[i+1]=11;
		}
		printf("%d ",line[i]);
	}
	return 0;
}