Greedy Mouse

来源:互联网 发布:能帮人找东西的软件 编辑:程序博客网 时间:2024/06/05 00:44

Greedy Mouse

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

A fat mouse prepared M pounds of cat food,ready to trade with the cats guarding the warehouse containing his

favorite food:peanut. The warehouse has N rooms.The ith room containsW[i] pounds of peanut and requires 

F[i] pounds of cat food. Fatmouse does not have to trade for all the peanut in the room,instead,he may get 

 W[i]*a% pounds of peanut if he pays F[i]*a% pounds of cat food.The mouse is a stupid mouse,so can you tell 

him the maximum amount of peanut he can obtain.

输入
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers W[i] and F[i] respectively. The test case is terminated by two -1. All integers are not greater than 1000.
输出
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of penaut that FatMouse can obtain.
样例输入
5 37 24 35 220 325 1824 1515 10-1 -1
样例输出
13.33331.500
#include<stdio.h>#include<stdlib.h>typedef struct{  double w;  double f;        }waho;waho s[10001];int comp ( const void *a, const void *b )  {       return  ((*( waho * )a).w / (*(waho *)a).f ) >               ((*( waho * )b).w/  (*(waho *)b).f )   ? -1:1 ;  }void mxpea(waho wh[],int n,double m)            //贪心选择 w/f最大者    {      int i;      double res=0;      double tem;      for (i=0;i<n;i++)      {          if (m>wh[i].f)           {              res+=wh[i].w;              m-=wh[i].f;          }          else          {              tem=m/wh[i].f;              res+=wh[i].w*tem;              break;           }      }        printf("%.3lf\n",res);     }  int main(){  double m;  int n;  while(scanf("%lf%d",&m,&n) && m!=-1&&n!=-1)  {    int i;    for(i=0;i<n;i++)      scanf("%lf%lf",&s[i].w,&s[i].f);    qsort(s,n,sizeof(s[0]),comp);    printf("\n");    mxpea(s,n,m);                               }  system("pause");  return 0;    }
0 0
原创粉丝点击