求助大佬,第一个WA了不知道为啥
查看原帖
求助大佬,第一个WA了不知道为啥
787176
EineKliene楼主2023/1/6 15:26
#include<iostream>
#include <cstdio>
using namespace std;
int N, T;
int m[100] = { 0 }, v[100] = { 0 };
double avg[100] = { 0 };
double V = 0;
int maxn(double avg[]);
int main() {
	cin >> N >> T;
	for (int i = 0; i < N; i++) {
		cin >> m[i] >> v[i];
		avg[i] = 1.0 * v[i] / m[i];
	}
	while (T) {
		if (T - m[maxn(avg)] > -0.000001) {
			V += v[maxn(avg)];
			T -= m[maxn(avg)];
			avg[maxn(avg)] = 0;
		}
		else {
			V += T * avg[maxn(avg)];
			T = 0;
		}
	}
	printf("%.2lf", V);
}
int maxn(double avg[]) {
	int max = 0;
	for (int i = 1; i < N; i++) {
		if (avg[max] < avg[i]) {
			max = i;
		}
	}
	return max;
}
2023/1/6 15:26
加载中...