CodeForces
来源:互联网 发布:无root一键免流软件 编辑:程序博客网 时间:2024/06/07 04:48
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;}
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Form表单的6种提交方式
- bzoj3999 [TJOI2015]旅游
- 【webstorm】webstorm官网中文破解版
- poj2114 Boatherds
- 网易笔试:交错01串
- CodeForces
- ARKit从入门到精通(1)-ARKit初体验
- #以应用为中心的无服务器PaaS将成主流
- SGU 319 Kalevich Strikes Back(线段树+扫描线)
- 内存溢出和内存泄漏的区别
- (dfs)迷宫探索
- Random 不重复
- Linux 初始 RAM磁盘(initrd)概述
- 轻松理解 Android Binder,只需要读这一篇