hdu1009

来源:互联网 发布:尬是什么意思 网络 编辑:程序博客网 时间:2024/05/17 23:08

贪心水题,先在nefu上做的,粘到hdu上re,数组应该开大点。

#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;struct sa{    int f;    int j;    double awk;}data[4000];int cmp(const sa &a,const sa &b){    return(a.awk)>(b.awk);}int main(){    int m,n;    double sum;    while(cin>>m>>n)    {sum=0;    if(m==-1&&n==-1)    break;    for(int i=0;i<n;i++)    {        cin>>data[i].j>>data[i].f;        data[i].awk=(double)data[i].j/(double)data[i].f;    }    sort(data,data+n,cmp);    for(int k=0;k<n;k++)    {      if(m>=data[k].f)      {          sum=sum+data[k].j;          m=m-data[k].f;      }      else      {          sum=sum+(double)m*data[k].awk;          break;      }    }    printf("%.3lf\n",sum);    }//cout << "Hello world!" << endl;    return 0;}
0 0
原创粉丝点击