迷瘴
Problem Description
提示:多種藥水混合後的濃度=(濃度1*體積1+濃度2*體積2+……)/(體積和)
Input
Output
Sample Input
31 100 101002 100 2420 303 100 2420 20 30
Sample Output
0 0.00100 0.20300 0.23
Hint
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int c,n,v,w;
int pi[110];
scanf("%d",&c);
while(c--){
scanf("%d%d%d",&n,&v,&w);
for(int i=0;i<n;i++){
scanf("%d",&pi[i]);
}
sort(pi,pi+n);
double P=0; //當前濃度
int V=0; //當前體積
for(int i=0;i<n;i++){ //關鍵操作
if((P*V+pi[i]*v)<=w*(V+v)){
P=(P*V+pi[i]*v)/(V+v); //濃度沒有超過
V+=v;
}
else{
break; //濃度超過了
}
}
printf("%d %.2lf\n",V,P/100); //注意除以100,例如將20化爲0.20
}
return 0;
}