杭电oj1009(贪心算法)

典型贪心算法的运用。
#include 
#include
#define For(i,m,n) for(i=m;i(b.j/b.f);
}
int main()
{
	int n,i;
	double count,m;
	while(scanf("%lf%d",&m,&n)&&m!=-1&&n!=-1)
	{
		count=0;
		For(i,0,n)
		{
			scanf("%lf%lf",&r[i].j,&r[i].f);
			
		}
		sort(r,r+n,cmp);i=0;
		while(m>0&&ir[i].f)
			{
				m=m-r[i].f;
				count+=r[i].j;
				i++;
			}
			else
				{
				count+=m*(r[i].j/r[i].f);
				 m=m-r[i].f;
			}
		}
		printf("%.3lf\n",count);
		
	}
	return 0;
	
}

你可能感兴趣的:(oj)