• HDU


    HDU - 1009FatMouse' Trade

    Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u

    Description

    FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.

    Input

    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 J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.

    Output

    For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.

    Sample Input

    5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1

    Sample Output

    13.333 31.500

    Source ZJCPC2004

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #define MAX 1010
     4 
     5 struct food{
     6     double j, f, a;
     7 };
     8 
     9 food fd[MAX];
    10 
    11 int comp(const void *a, const void *b) {
    12     food *_a = (food *)a;
    13     food *_b = (food *)b;
    14     if(_a->a > _b->a)
    15         return -1;
    16     else if(_a->a < _b->a)
    17         return 1;
    18     else
    19         return 0;
    20 }
    21 
    22 int main()
    23 {
    24     double m = 0, ans = 0;
    25     int n = 0;
    26     while(scanf("%lf%d", &m, &n) != EOF) {
    27         if(m == -1 && n == -1) break;
    28         for(int i = 0; i < n; i++) {
    29             scanf("%lf%lf", &fd[i].j, &fd[i].f);
    30             fd[i].a = fd[i].j/fd[i].f;
    31         }
    32 
    33         qsort(fd, n, sizeof(food), comp);
    34 
    35         for(int i = 0; i < n && m > 0; i++) {
    36             if(m >= fd[i].f) {
    37                 ans += fd[i].j;
    38                 m -= fd[i].f;
    39             }
    40             else {
    41                 ans += m*fd[i].a;
    42                 m = 0;
    43                 break;
    44             }
    45         }
    46         printf("%.3lf
    ", ans);
    47         m = 0; n = 0; ans = 0;
    48     }
    49 
    50     return 0;
    51 }
  • 相关阅读:
    打印springboot容器的所有实例关键代码
    RestTmeplate与Ribbon简介
    Spring Boot整合Swagger2搭建Restful API在线文档总结
    Spring Boot整合JPA总结
    解决:Type javax.xml.bind.JAXBContext not present
    Feign介绍与总结
    解决:Failed to bind properties under ‘eureka.client.serviceurl‘ to java.util.Map<java.lang.String, java.
    Eureka总结
    Eureka的一些概念
    关闭 single instance only
  • 原文地址:https://www.cnblogs.com/acmicky/p/3221059.html
Copyright © 2020-2023  润新知