ACMSTEP 1.3.6 老人真是饿了 //排序 贪心

原题地址


WA了好多次。。郁闷

#include <iostream> 
#include <cstdio> 
#include <algorithm> 
using namespace std; 
struct data 
{ 
	int a;int b; 
}; 
 
bool cmp(data a,data b) 
{ 
	return a.a<b.a; 
} 
int main() 
{ 
	int T,n,m,i; 
	data f[1001]; 
	double x; 
	for(scanf("%d",&T);T>0;T--) 
	{ 
		scanf("%d%d",&m,&n); 
		{ 
			x=0; 
			for(i=0;i<n;++i) 
			{ 
				scanf("%d%d",&f[i].a,&f[i].b); 
			} 
		} 
		sort(f,f+n,cmp); 
		double sum=0;int price=0; 
		for(i=0;i<n;++i) 
		{ 
			if(price+f[i].a*f[i].b<=m) 
			{sum+=f[i].b;price=price+f[i].a*f[i].b;} 
			else 
			{ 
				sum+=1.00*(m-price)/f[i].a; 
				break; 
			} 
		} 
		printf("%.2lf\n",sum); 
	} 
	return 0; 
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值