P2240,这里为什么会出runtime error,求教!!
  • 板块题目总版
  • 楼主AsuraZ
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/4/22 20:53
  • 上次更新2023/11/5 00:14:15
查看原帖
P2240,这里为什么会出runtime error,求教!!
473064
AsuraZ楼主2021/4/22 20:53
#include<iostream>
#include<cstdio>
using namespace std;
struct gold{
	int m, v;//重量, 价值 
	double bi;
}g[105];
int main(){
	int n, t;
	cin >> n >> t;
	for(int i = 0; i < n; i++){
	    cin >> g[i].m >> g[i].v;
	    g[i].bi = 1.0 * g[i].v / g[i].m;
	}
	//排序,从大到小 
	for(int i = 0; i < n - 1; i++){
		for(int j = n - 1; j > i; j--){
			if(g[j].bi > g[j-1].bi){
				gold tmp = g[j];
				g[j] = g[j-1];
				g[j-1] = tmp;
			}
		}
	} 
	int i = 0;
	double sum = 0;//sum记录带走的总价值 
	while(t){
		if(t >= g[i].m){
			t -= g[i].m;
			sum += 1.0 * g[i].v;
			i++;
		}else{
			sum += 1.0 * t * g[i].bi;
			t = 0;
		}
	}
	printf("%.2f", sum);
}

跑出来的结果其他都对,第一个数据出了RE

2021/4/22 20:53
加载中...