zoukankan      html  css  js  c++  java
  • Codeforces Round #460 (Div. 2)-A Supermaket(贪心)

    A. Supermarket
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    We often go to supermarkets to buy some fruits or vegetables, and on the tag there prints the price for a kilo. But in some supermarkets, when asked how much the items are, the clerk will say that a yuan for b kilos (You don't need to care about what "yuan" is), the same as a / b yuan for a kilo.

    Now imagine you'd like to buy m kilos of apples. You've asked n supermarkets and got the prices. Find the minimum cost for those apples.

    You can assume that there are enough apples in all supermarkets.

    Input

    The first line contains two positive integers n and m (1 ≤ n ≤ 5 0001 ≤ m ≤ 100), denoting that there are n supermarkets and you want to buy m kilos of apples.

    The following n lines describe the information of the supermarkets. Each line contains two positive integers a, b (1 ≤ a, b ≤ 100), denoting that in this supermarket, you are supposed to pay a yuan for b kilos of apples.

    Output

    The only line, denoting the minimum cost for m kilos of apples. Please make sure that the absolute or relative error between your answer and the correct answer won't exceed 10 - 6.

    Formally, let your answer be x, and the jury's answer be y. Your answer is considered correct if .

    Examples
    input
    3 5
    1 2
    3 4
    1 3
    
    output
    1.66666667
    
    input
    2 1
    99 100
    98 99
    
    output
    0.98989899
    
    Note

    In the first sample, you are supposed to buy 5 kilos of apples in supermarket 3. The cost is 5 / 3 yuan.

    In the second sample, you are supposed to buy 1 kilo of apples in supermarket 2. The cost is 98 / 99 yuan.




    贪心,做商排序即可。

    #include <bits/stdc++.h>
    using namespace std;
    template <typename t>
    void read(t &x)
    {
        char ch = getchar();
        x = 0;
        t f = 1;
        while (ch < '0' || ch > '9')
            f = (ch == '-' ? -1 : f), ch = getchar();
        while (ch >= '0' && ch <= '9')
            x = x * 10 + ch - '0', ch = getchar();
        x *= f;
    }
    
    #define wi(n) printf("%d ", n)
    #define wl(n) printf("%lld ", n)
    #define rep(m, n, i) for (int i = m; i < n; ++i)
    #define rrep(m, n, i) for (int i = m; i > n; --i)
    #define P puts(" ")
    typedef long long ll;
    #define MOD 1000000007
    #define mp(a, b) make_pair(a, b)
    #define N 10005
    #define fil(a, n) rep(0, n, i) read(a[i])
    //---------------https://lunatic.blog.csdn.net/-------------------//
    
    #define maxn 5005
    struct Pay
    {
        double w;
        double v;
        double pri;
    } s[maxn];
    
    int cmp(Pay a, Pay b)
    {
        return a.pri < b.pri;
    }
    int main()
    {
        int m, i, n;
        Pay s[maxn];
        read(m), read(n);
        for (i = 0; i < m; i++)
        {
            scanf("%lf%lf", &s[i].v, &s[i].w);
            s[i].pri = s[i].v / s[i].w;
        }
    
        sort(s, s + m, cmp);
        printf("%.10f", n * s[0].pri);
        return 0;
    }
    
  • 相关阅读:
    从人群中看出真正优秀的人!
    新东方在厦门大学演讲--笔摘
    vuepress+gitee 构建在线项目文档
    二维码科普
    Linux访问Window共享文件夹的配置步骤
    SQL Server使用笔记
    Progress笔记
    Linux使用笔记
    Linux下配置mail使用外部SMTP发送邮件
    SaaS、PaaS、IaaS的含义与区别
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12798383.html
Copyright © 2011-2022 走看看