BUPT复试专题—排序(2009)
题目描述
查找序列a 中小于 b 的第 i 个数的数的个数
输入
输入有多组,每组四行
第一行:序列a个数N
第二行:(序列a的)N个数,升序排列
第三行:序列b个数M
第一行:序列a个数N
第二行:(序列a的)N个数,升序排列
第三行:序列b个数M
第四行:(序列b的)M个数,升序排列
第五行:i 表示b中第i个数
输出
对序列a ,输出小于 b 的第 i 个数的数的个数
样例输入
3
1 2 3
4
1 2 3 4
4
样例输出
3
来源
#include<algorithm> #include<iostream> #include<cstdio> using namespace std; int main() { int n=0; while(cin>>n) { int m=0,a[100],b[100],key=0 for(int i=0;i<n;i++) cin>>a[i]; cin>>m; for(int i=0;i<m;i++) cin>>b[i]; cin>>key; int num=b[key-1],count=0; if(a[0]>=num) { cout<<"0"<<endl; continue; } int *t=lower_bound(a,a+n,num); for(int i=0;a[i]<*t;i++) { count++; } cout<<count<<endl; } return 0; }