1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#include<stdio.h> #include<algorithm> using namespace std; const int maxn = 1000; typedef struct yuebing { double cun; double shouyi; double danjian; }yue; yue arr[maxn]; bool cmp(yue a, yue b) { return a.danjian>b.danjian; } int main() { int N, D; double shoushou = 0; scanf("%d%d", &N, &D); //输入库存 for (int i = 0; i<N; i++) { scanf("%lf", &arr[i].cun); } //输入收益,并计算单收益 for (int i = 0; i<N; i++) { scanf("%lf", &arr[i].shouyi); arr[i].danjian = arr[i].shouyi / arr[i].cun; } sort(arr, arr + N, cmp);//根据但收益排序 for (int i = 0; i<N; i++) { if (arr[i].cun >= D) { shoushou += arr[i].danjian*D; break; } if (arr[i].cun<D) shoushou += arr[i].shouyi; D -= arr[i].cun; } printf("%.2f", shoushou); return 0; }
|
近期评论