#include <iostream>#include<cstdio>#include<algorithm>#include<string.h>using namespacestd;/*3 0180 1007.5 7.2 4.5*/Const intmaxn= ++5;intAMOUNTS[MAXN];floatPRICE[MAXN];structcake{floatAmounts;//Note that this must be set to a floating point type, if the int is not a regular floatPrice ; floatUnitprice=0; BOOL operator< (ConstCake tmp)Const{ returnUnitprice>Tmp.unitprice; }}CAKE[MAXN];intMain () {intn,d; scanf ("%d%d",&n,&d); for(intI=0; i<n;i++) {scanf ("%f",&cake[i].amounts); } for(intI=0; i<n;i++) {scanf ("%f",&Cake[i].price); Cake[i].unitprice=cake[i].price/cake[i].amounts; } sort (Cake,cake+N); floatans=0; for(intI=0; i<n;i++){ if(d>=cake[i].amounts) {ans+=Cake[i].price; D-=cake[i].amounts; } Else{ans+ = (d/cake[i].amounts) *Cake[i].price; Break; }} printf ("%.2f", ans); return 0;}
View Code
Pat a problem-1070. Mooncake (25)-Sort, flood question