您的位置:首页 > 其它

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

2012-06-04 11:35 330 查看
#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: