题解(STL)25行
2024-01-07 10:35:02
发布于:广东
181阅读
0回复
0点赞
用scanf,printf不会超时
a数组开大点,1≤n,m≤1000000,开1000000+5=1000005就行
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a[1000005],x;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
while(m--)
{
scanf("%d",&x);
int b=lower_bound(a+1,a+1+n,x)-&a[1]+1;
if(a[b]==x)
{
printf("%d ",b);
}
else
{
printf("%d ",-1);
}
}
return 0;
}
全部评论 1
不懂就问 为什么是a[1]+1
2024-04-14 来自 广东
1
有帮助,赞一个