2012百度之星初赛第2场c题

#include<stdio.h>
int main()
{	int n,p1,p2,t1=0,t2=0,i,j,k,a[1000],b[1000],c[1000],s1[1000],s2[1000],K[2],A[2],B[2],max1,max2,kaixin=0;	
scanf("%d",&n);	
for(i=0;i<n;i++)scanf("%d %d",&a[i],&b[i]);	
for(i=0;i<2;i++)scanf("%d %d %d",&K[i],&A[i],&B[i]);
for(i=0;i<n;i++)	
{max1=A[0]*a[i]+B[0]*b[i];	
max2=A[1]*a[i]+B[1]*b[i];	
if(max1>max2)	
{s1[t1]=max1;t1++;	
}	
else	 {s2[t2]=max2;t2++;
}
}	
for(i=0;i<t1-1;i++)	
for(j=0;j<t1-1;j++)	
{	
if(s1[j]<s1[j+1])	
{k=s1[j];s1[j]=s1[j+1];s1[j+1]=k;
}	
}	
for(i=0;i<t2-1;i++)	
for(j=0;j<t2-1;j++)	
{	
if(s2[j]<s2[j+1])	
{k=s2[j];s2[j]=s2[j+1];s2[j+1]=k;
}	
}
j=0;	 k=0;	 p1=t1;p2=t2;	
for(i=0;i<t1+t2;i++)	
{ if(p1==0&&p2==0)break;	
if(t1==0)	 {kaixin+=s2[j];j++;continue;
}	
if(p2==0)	 {kaixin+=s1[k];k++;continue;	
}	
if(s1[k]>s2[j])	 {kaixin+=s1[k];p1--;k++;	
}	
else {kaixin+=s2[j];p2--;j++;
}	
}	
printf("%d\n",kaixin);
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值