数组
因为两个数组都是非降序,且要求从a数组中选k个数都小于b组中选的m个数
那么就可以贪心的考虑选从a中选较小的k个数,即a[1~k],和b中选较大的m个数,即b[lenb-m+1~lenb],lenb为b数组长度
如果此时a[k]<b[lenb-m+1],则存在满足题意
否则,不满足题意
所以只用记录a[k]和b[lenb-m+1],然后比较即可
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int na,nb;
int m,k;
main(){
cin>>na>>nb;
cin>>k>>m;
int maxa,minb;
for(int i=1;i<=na;++i) {
int x;cin>>x;
if(i==k) maxa=x;
}
for(int i=1;i<=nb;++i){
int x;cin>>x;
if(i==na-m+1) minb=x;
}
if(maxa<minb) puts("YES");
else puts("NO");
return 0;
}