您的位置:首页 > 其它

HDOJ1009

2016-05-26 20:10 246 查看
#include"iostream"
#include"algorithm"
using namespace std;
struct job
{
double j;
double c;
friend bool operator<(job&a,job&b)
{
return a.j/a.c>b.j/b.c;
}
};
int main()
{
//freopen("a.txt","r",stdin);
int n,m;
while(cin>>n>>m&&n!=-1&&m!=-1)
{
job a[1000];
int i;
for(i=0;i<m;i++)
scanf("%lf%lf",&a[i].j,&a[i].c);
sort(a,a+m);

double sum=0;
double space=n;
for(i=0;i<m;i++)
{
if(space>0)
{
if(space-a[i].c>=0)
{
sum+=a[i].j;
space=space-a[i].c;
continue;
}
if(space-a[i].c<0)
{
double st=space/a[i].c*a[i].j;
//cout<<st<<endl;
sum+=st;
space=0;
}
}
if(space==0) break;
}
printf("%.3f\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: