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;
    }
    
  • 相关阅读:
    吾爱破解 培训第十课:探寻逆向新航标x64平台脱壳与破解实战 笔记
    吾爱破解 培训第八、九课:短兵相接深入浅出探讨脱壳细节 笔记
    十大经典排序算法(转自 www.runoob.com)
    吾爱破解 培训第一课:破解基础知识之介绍常见工具和壳的特征 笔记
    吾爱破解 培训第三课:改头换面之修改版权和资源 笔记
    吾爱破解 软件虚拟机保护分析资料整理 笔记
    吾爱破解 新手脱壳破解常见问题 笔记
    吾爱破解 培训第七课:手把手教你从实例看如何攻破常见的网络验证 笔记
    吾爱破解 培训第五课:反击作者的挑衅实战解除程序重启验证 笔记
    GDB基础
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12798383.html
Copyright © 2011-2022 走看看