20分萌新求助
查看原帖
20分萌新求助
544813
dbkx_29楼主2021/12/23 23:56

请各位大佬拿点奇怪的数据让这玩意出错误答案

#include <bits/stdc++.h>
using namespace std;

void swap(int &a, int &b) {
	int t = a;
	a = b;
	b = t;
}

int main() {
	int T, n;
	double ans;
	cin >> T >> n;
	int a[T], b[T];

	for (int i = 0; i < T; i++) {
		cin >> a[i] >> b[i];
	}
	for (int i = 0; i < T - 1; i++) {
		for (int j = 0; j < T - 1; j++) {
			if (double(b[j] / a[j]) < double(b[j + 1] / a[j + 1])) {
				swap(a[j], a[j + 1]);
				swap(b[j], b[j + 1]);
			}
		}
	}
//	for (int i = 0; i < T; i++) {
//		cout << a[i] << " " << b[i] << endl;
//	}
	for (int i = 0; i < T; i++) {
		if (n >= a[i]) {
			n -= a[i];
			ans += b[i];
		} else {
			ans += double(b[i] / a[i]) * n;
			break;
		}
	}
	printf("%.2lf", ans);
	return 0;
}
2021/12/23 23:56
加载中...