您的位置:首页 > 其它

题目23:迷瘴

2013-03-05 22:29 183 查看
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int cmp(const void * a,const void *b)
{
return *(int *)a-*(int *)b;
}

void main()
{
int c;

while(scanf("%d",&c)!=EOF)
{
while(c--!=0)
{
int n,v,w;
int i=0;
int p[100];

int  currW=0;
int  currV=0;

scanf("%d%d%d",&n,&v,&w);
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
}//精度问题用整数做,少用除法,把除法变成乘法
qsort(p,n,sizeof(int),cmp);

for(i=0;i<n;i++)
{
if(p[i]<=w)
{
currW = (p[i]*v + currW);
currV += v;
}
else
if((p[i]*v + currW) <= w*(currV+v))
{
currW = currW + p[i]*v;
currV += v;
}
else
break;
}

currW =(int )floor((double)currW/currV + 0.5);
if(currV == 0)currW = 0;
printf("%d 0.%02d\n",currV,currW);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: