RE了这是为啥呀?求助::>_<::
查看原帖
RE了这是为啥呀?求助::>_<::
99244
我是大帅比ZED楼主2022/12/21 16:24
#include <stdio.h>
using namespace std;

struct Gold_coin
{
	int weight;
	int value;
	//double per;
}arr[101];//不超过100

int main (void)
{
	int n, capacity;//n堆
	scanf("%d%d", &n, &capacity);
	
	for (int i=0; i<n; i++)
	{
		scanf("%d%d", &arr[i].weight, &arr[i].value);
		
		//arr[i].per = arr[i].value / arr[i].weight;
	}
	
	/*for (int i=0; i<n; i++)
		printf("%d %d %lf\n", arr[i].weight, arr[i].value, arr[i].per);*/

	
	for (int i=0; i<n-1; i++)
	{
		for (int j=i+1; j<n; j++)
		{
			if (arr[j].value*arr[i].weight > arr[i].value*arr[j].weight)
			{
				Gold_coin tem;
				tem = arr[i];
				arr[i] = arr[j];
				arr[j] = tem;
			}
		}
	}
	
	/*for (int i=0; i<n; i++)
		printf("%d %d %lf\n", arr[i].weight, arr[i].value, arr[i].per);*/
	
	int i = 0;
	double ans = 0;
	while (capacity >= 0)
	{
		if (capacity < arr[i].weight)
		{
			ans += (arr[i].value * 1.0 / arr[i].weight) * capacity;
			capacity = -1;
		}
		else//装得下
		{
			ans += arr[i].value;
			capacity -= arr[i].weight;
			i++;//装下一个
		}
	}
	
	printf("%.2lf", ans);
	
	return 0;
}
2022/12/21 16:24
加载中...