4 条题解
-
0
#include <bits/stdc++.h> using namespace std; struct treasure{ //连锁数据排序 double m, v, rate; }; bool cmp(treasure a, treasure b) { return a.rate>b.rate; } int main() { int N, T; cin >> N >> T; vector<treasure> treasures(N); double sum=0; for(int i=0; i<N; i++) { cin >> treasures[i].m >> treasures[i].v; treasures[i].rate=treasures[i].v/treasures[i].m; } sort(treasures.begin(), treasures.end(), cmp); for(int i=0; i<N; i++) { if(T>=treasures[i].m) //尽量不造成出现负数的情况 { T-=treasures[i].m; sum+=treasures[i].v; } else { sum+=treasures[i].rate*T; T=0; break; } } printf("%.2lf", sum); return 0; }
信息
- ID
- 77
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 342
- 已通过
- 82
- 上传者