/** \brief hdu 1009--greedy * * \param date 2014/7/18 * \param state AC * \return * */ #include#include #include #include using namespace std; const int MAXN=1001; struct Data { int J; int F; /* bool operator < (const Data& d) const { return d. } */ double price; }; Data data[MAXN]; bool Comp(const Data& a,const Data& b) { if(a.price>=b.price) return true; else return false; } //void Knapsack(int n,int m,int v[],int w[],int x[]) void Knapsack(int n,int m) { //Sort(data,data+n,Comp); sort(data,data+n,Comp); int i; int c=m; double sum=0.0; for(i=0;i =data[i].F) { c-=data[i].F; sum+=data[i].J; } else { sum+=c*1.0/data[i].F*data[i].J; c=0; } } printf("%.3f",sum); cout<>J[i]>>F[i]; cin>>data[i].J>>data[i].F; data[i].price=data[i].J*1.0/data[i].F; } // Knapsack(N,M); } return 0; }