20分求助:
查看原帖
20分求助:
550806
前方高能楼主2023/8/3 23:46

俺滴代码,只有第一个AC:

#include <bits/stdc++.h>
using namespace std;
struct c
{
	int a,b,c,d;
};
c g[100];
bool cmp(c a1,c a2)
{
	if(a1.c>a2.c)
	return true;
	return false;
}
int main() 
{
	int n,t;
	cin>>n>>t;
	for(int i=1;i<=n;i++)
	{
		cin>>g[i].a>>g[i].b;
		g[i].c=g[i].b*1.0/g[i].a;
		g[i].d=g[i].a*1.0/g[i].b;
	}
	sort(g+1,g+n+1,cmp);
	float u=0;
	for(int i=1;i<=n;i++)
	{
		if(t>=g[i].a)
		{
			t-=g[i].a;
			u+=g[i].b;
		}
		else
		{
			u+=g[i].c*t;
			break;
		}
	}
	printf("%.2f",u);
    return 0;
}
2023/8/3 23:46
加载中...