• Codeforces Round #180 (Div. 2) D. Fish Weight 贪心


    D. Fish Weight

    题目连接:

    http://www.codeforces.com/contest/298/problem/D

    Description

    It is known that there are k fish species in the polar ocean, numbered from 1 to k. They are sorted by non-decreasing order of their weight, which is a positive number. Let the weight of the i-th type of fish be wi, then 0 < w1 ≤ w2 ≤ ... ≤ wk holds.

    Polar bears Alice and Bob each have caught some fish, and they are guessing who has the larger sum of weight of the fish he/she's caught. Given the type of the fish they've caught, determine whether it is possible that the fish caught by Alice has a strictly larger total weight than Bob's. In other words, does there exist a sequence of weights wi (not necessary integers), such that the fish caught by Alice has a strictly larger total weight?

    Input

    The first line contains three integers n, m, k (1 ≤ n, m ≤ 105, 1 ≤ k ≤ 109) — the number of fish caught by Alice and Bob respectively, and the number of fish species.

    The second line contains n integers each from 1 to k, the list of fish type caught by Alice. The third line contains m integers each from 1 to k, the list of fish type caught by Bob.

    Note that one may have caught more than one fish for a same species.

    Output

    Output "YES" (without quotes) if it is possible, and "NO" (without quotes) otherwise.

    Sample Input

    3 3 3

    2 2 2

    1 1 3

    Sample Output

    YES

    Hint

    题意

    有两个人,第一个人抓了n条鱼,第二个人抓了m条鱼

    保证编号小的一定小于等于编号大的质量

    问你第一个人的n条鱼质量之和,有没有可能比第二个人的m条鱼的质量之和大

    题解:

    直接从大到小排序就好了,然后扫一遍。

    只要存在一条鱼,a[i]>b[i],那么就说明可以。

    因为我此时只要让后面的鱼全部都为0千克就好了

    代码

    #include<bits/stdc++.h>
    using namespace std;
    #define maxn 100005
    int a[maxn],b[maxn];
    bool cmp(int A,int B)
    {
        return A>B;
    }
    int main()
    {
        int n,m,k;
        scanf("%d%d%d",&n,&m,&k);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(int i=1;i<=m;i++)
            scanf("%d",&b[i]);
        sort(a+1,a+1+n,cmp);
        sort(b+1,b+1+m,cmp);
        for(int i=1;i<=n;i++)
            if(a[i]>b[i])
                return puts("YES");
        return puts("NO");
    }
  • 相关阅读:
    A “word-wrap” functionality(一个字符串包裹函数)
    First Unique Character in a String 的变种问题返回第一个找到符合条件的字符
    北美一工作搜索引擎公司技术岗面经
    一房地产数据服务初创公司的面经
    Prime numbers from 1 to 100 (打印 100 以内的素数)
    dubbo面试题(1)
    maven工具日常开发常用命令
    BaseMapper和继承
    《计算机是怎样跑起来的》读书笔记(2)
    AEAP工作总结模板套路
  • 原文地址:https://www.cnblogs.com/qscqesze/p/5116550.html
Copyright © 2020-2023  润新知