**Arrays**
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).
Example
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
代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#define LL long long
#define M 100000+100
#define inf 0x3f3f3f3f
#define mod 100009
using namespace std;
int A[M],B[M];
int main()
{
int i,j;
int n,m;
scanf("%d%d",&n,&m);
int x,y;
scanf("%d%d",&x,&y);
for(i=1;i<=n;i++)
scanf("%d",&A[i]);
for(i=1;i<=m;i++)
scanf("%d",&B[i]);
int k=upper_bound(B+1,B+m+1,A[x])-B-1;
if(m-k>=y) printf("YES\n");
else printf("NO\n");
return 0;
}