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); }
相关文章推荐
- 2012百度之星初赛第2场:A题试题及参考答案
- 【2012百度之星/初赛上】D:轮子上的度度熊
- 【2012百度之星/初赛上】A:度度熊就是要第一个出场
- 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
- 【2012百度之星/初赛上】B:小小度刷礼品
- 【2012百度之星/初赛下】B:网页聚类
- 2012百度之星初赛第一场B题
- 2012百度之星初赛:A题
- 【2012百度之星/初赛上】C:集合的交与并
- 【2012百度之星/初赛下】C:度度熊的礼物
- 2012百度之星初赛第一场B题
- 2012百度之星初赛:C题
- 【2012百度之星/初赛下】D:小王子的表演
- 百度之星 2012 初赛
- 2012百度之星初赛:D题
- 2012百度之星初赛——A题
- 2012百度之星初赛之C题:度度熊的礼物
- 【2012百度之星/初赛上】小小度刷礼品
- 2012百度之星初赛下 c题
- 百度之星2012初赛Day1 A - 度度熊就是要第一个出场