60分求解答
查看原帖
60分求解答
1191436
T_T_give_me_AC楼主2024/3/31 21:44

60分,两个样例过不去

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n, t;
double big[1005][1005];
double b[1005];
double sum = 0;
double ans = 0;
signed main() {
	cin >> n >> t;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 2; j++)
			cin >> big[i][j];
			b[i] = big[i][1] / big[i][0];
			ans += big[i][0];

	}
	if (ans <= t) {
		for (int i = 0; i < n; i++) {
			sum += big[i][1];
		}
		printf("%.2lf", sum);
		return 0;
	}
	else {
		sort(b, b + n);
		int m = n - 1;
		for (int i = 0; i < n; i++) {
			if (big[i][1] == 0) {
				continue;
			}
			if (big[i][1] / big[i][0] == b[m]) {
				if (t-big[i][0] >-0.000001) {
					t -= big[i][0];
					sum += big[i][1];
					m--;
					i = 0;
				}
				else {
					sum += b[m] * t;
					break;
				}
			}
		}
		printf("%.2lf", sum);
		return 0;
	}
}
2024/3/31 21:44
加载中...