hdu 4310

贪心,刚做此题时,就意识到了是贪心,但贪心思路一直没找对,wa了n次,在纠结中终于想出正确的思路


#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct node
{
	int x,y;
};
node f[25];
bool cmp(node a,node b)
{
	return a.y*b.x<b.y*a.x;
}
int main()
{
	int n;
	while(cin>>n)
	{
		int i;
		long long amount=0,tot=0;
		for(i=0;i<n;i++)
		{
			scanf("%d%d",&f[i].x,&f[i].y);
			amount+=f[i].x;
		}
		sort(f,f+n,cmp);
		for(i=0;i<n;i++)
		{
			tot+=amount*f[i].y;
			amount-=f[i].x;
		}
		cout<<tot<<endl;
	}
	return 0;
}


posted @ 2012-12-23 00:40  LJ_COME!!!!!  阅读(140)  评论(0编辑  收藏  举报