20分求调,谢谢
查看原帖
20分求调,谢谢
1100140
Ryoo楼主2024/9/19 18:16
#include <bits/stdc++.h>
using namespace std;
struct coin{
	int v,m;
	float vm;
}c[105];
bool cmpp(coin x,coin y) {
	return x.vm > y.vm;
}
int main() {
	int n,t;
	float tov = 0;
	scanf("%d%d", &n,&t);
	for(int i = 1; i <= n; i++) {
		scanf("%d%d", &c[i].m, &c[i].v);
		c[i].vm = (float)(c[i].v)/(float)(c[i].m);
		//printf("%f ", c[i].vm);
	}
	//printf("\n");
	sort(c+1,c+1+n,cmpp);
	for(int i = 1; i <= n; i++) {
		if(t > c[i].m) {
			t -= c[i].m;
			tov += c[i].v;
			
		}
		else {
			int vv = ((float)t/(float)c[i].m)*c[i].v;
			tov += vv;
			//break;
		}
	}
	printf("%.2f", tov);
	//for(int i = 1; i <= n; i++) printf("%f ", c[i].vm);
	return 0;
}
2024/9/19 18:16
加载中...