Portal de título original
Idea: Use el método lower_bound () en STL para encontrar el primer valor mayor o igual que el número que se está verificando, luego use if para eliminar el número encontrado mayor que el número que se está verificando y finalmente genere el subíndice correspondiente.
Referencia de código
#include <iostream>
using namespace std;
int a[1000000];
int main()
{
int n,m;
cin >> n >> m;
for(int i = 1; i <= n; i++)
cin >> a[i];
while(m--){
int s;
cin >> s;
int ans = lower_bound(a+1,a+1+n,s)-a;//返回数组中第一个大于或等于被查数s的值,且下标从1开始算起
//排除找出的那些大于被查数s的数
if(a[ans]!=s)
ans = -1;
cout<<ans<<" ";
}
return 0;
}