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

时间:2023-03-08 16:54:58

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");
}