首页 > 代码库 > hud 2570 迷障(水 贪心)
hud 2570 迷障(水 贪心)
对给的药水浓度进行排序,对于小于解毒药水浓度的可以直接加上它的体积,对每次混合后的药水浓度进行记录,
大于解毒药水浓度就输出,注意你求得是百分比还是百分数。。。
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
using namespace std;
int s[10005];
int main()
{
int a,i,n,m,k;
scanf("%d",&a);
while(a--)
{
scanf("%d %d %d",&n,&m,&k);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
sort(s,s+n);
if(s[0]>k)
{
printf("0 0.00\n");
continue;
}
double sum1,sum=0,dd;
int ans=0;
for(i=0;i<n;i++)
{
if(s[i]<=k)
{
sum1=(double)m*s[i]/100.0;
sum=(double)(sum1+sum*ans)/(ans+m)*1.0;
ans+=m;
}
else
{
sum1=(double)m*s[i]/100.0;
dd=sum;
sum=(double)(sum1+sum*ans)/(ans+m)*1.0;
if(sum*100>k)
{
printf("%d %.2lf\n",ans,dd);
break;
}
else
{
ans+=m;
}
}
}
if(i==n)
printf("%d %.2lf\n",ans,sum);
}
return 0;
}