A. Arrays
time limit per test2 seconds
memory limit
per test256 megabytes
inputstandard input
outputstandard output
You are given two arrays A and B consisting of integers, sorted in non-decreasing order. Check whether it is possible to choose k numbers in array A and choose m numbers in array B so that any number chosen in the first array is strictly less than any number chosen in the second array.
Input
The first line contains two integers nA, nB (1 ≤ nA, nB ≤ 105), separated by a space — the sizes of arrays A and B, correspondingly.
The second line contains two integers k and m (1 ≤ k ≤ nA, 1 ≤ m ≤ nB), separated by a space.
The third line contains nA numbers a1, a2, … anA ( - 109 ≤ a1 ≤ a2 ≤ … ≤ anA ≤ 109), separated by spaces — elements of array A.
The fourth line contains nB integers b1, b2, … bnB ( - 109 ≤ b1 ≤ b2 ≤ … ≤ bnB ≤ 109), separated by spaces — elements of array B.
Output
Print “YES” (without the quotes), if you can choose k numbers in array A and m numbers in array B so that any number chosen in array A was strictly less than any number chosen in array B. Otherwise, print “NO” (without the quotes).
Examples
input
3 3
2 1
1 2 3
3 4 5
output
YES
input
3 3
3 3
1 2 3
3 4 5
output
NO
input
5 2
3 1
1 1 1 1 1
2 2
output
YES
Note
In the first sample test you can, for example, choose numbers 1 and 2 from array A and number 3 from array B (1 < 3 and 2 < 3).
In the second sample test the only way to choose k elements in the first array and m elements in the second one is to choose all numbers in both arrays, but then not all the numbers chosen in A will be less than all the numbers chosen in B: .
题意:
a数组取k个数
b数组取m个数
问是否存在一种取法能够使得所有a数组取出的数严格小于b数组取出的数
那就两个sort一下a取最小的k个,b取最大的m个比较一下大小就好啦。后来发向他都给你。。。排序好了。。。
一个if解决。。签到题。。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long LL;
const int maxn=1e5+5;
int a[maxn],b[maxn],na,nb,m,k;
int main()
{
while(~scanf("%d%d",&na,&nb))
{
scanf("%d%d",&k,&m);
for(int i=1;i<=na;++i)scanf("%d",a+i);
for(int i=1;i<=nb;++i)scanf("%d",b+i);
if(a[k]<b[nb-m+1])printf("YES\n");
else printf("NO\n");
}
return 0;
}