題目連線:
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");
}