hdu1009简单数学题

来源:互联网 发布:十三水智能选牌算法 编辑:程序博客网 时间:2024/05/07 11:33
#include <iostream>#include <stdio.h>struct Rate{double rate;int index;};void QSort(struct Rate ra[],int p,int r);int partition(struct Rate ra[],int p,int r);using namespace std;#define N 1000 int main(){int J[N],F[N];    struct Rate ra[N];int i;int rooms,food;cin>>food>>rooms;while(food!=-1||rooms!=-1){double getJavaBean=0.0;for(i=0;i<rooms;i++){cin>>J[i]>>F[i];ra[i].rate=(double)J[i]/(double)F[i];ra[i].index=i;}QSort(ra,0,rooms);i=0;while(food){if(food>=F[ra[i].index]){getJavaBean+=J[ra[i].index];food-=F[ra[i].index];i++;}else{getJavaBean+=(double)food/(double)F[ra[i].index]*(double)J[ra[i].index];food=0;}}printf("%.3lf\n",getJavaBean);cin>>food>>rooms;}return 0;}void QSort(struct Rate ra[],int p,int r)    {if(p<r){int q=partition(ra,p,r);QSort(ra,p,q-1);QSort(ra,q+1,r);}}int partition(struct Rate ra[],int p,int r){double key=ra[p].rate;int i=p;for(int j=p+1;j<=r;j++){if(!(ra[j].rate<key)){i=i+1;Rate temp=ra[i];            ra[i]=ra[j];ra[j]=temp;}  }Rate temp=ra[i];            ra[i]=ra[p];ra[p]=temp;return i;}


hdu1009 Fat Mouse'sTrade

 

原创粉丝点击