记录编号 |
351859 |
评测结果 |
AWWAAAWWWWWW |
题目名称 |
加工生产调度 |
最终得分 |
33 |
用户昵称 |
Zwoi_只会打表抄代码的蒟蒻 |
是否通过 |
未通过 |
代码语言 |
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;
}