贪心的经典题型
该死的精度问题,WA了好几次,以后能用乘的绝不用除!!
#include<iostream>
#include<algorithm>
#include<cstdio>using namespace std;int main(){int n,v,w,k,i;int p[111],t[111];cin>>k;while(k--){cin>>n>>v>>w;for(i=0;i<n;i++)scanf("%d",p+i);sort(p,p+n);t[0]=p[0]*100; //保留两位小数点w*=100;int d=0,kk=1,flag=0;for(i=1;i<n;i++){t[i]=t[i-1]+p[i]*100; //本来是 t[i]=(t[i-1]+p[i]*100)/(kk+1); 一直WAif(t[i]<=w*(kk+1)){ //改成 w*(kk+1) 就过了flag=1;kk=i+1;d=i;}}if(!flag && t[0]>w)cout<<"0 0.00"<<endl;elseprintf("%d %.2f\n",kk*v,(double) t[d]/(kk*10000.0));}return 0;
}