514czh @ 2023-11-02 12:56:26
样例过,测全WA,求调教
#include<bits/stdc++.h>
using namespace std;
int a[100005],s,d,f,g;
int ef(int x){
int l=0,r=s+1;
while(l+1<r){
int mid=(l+r)/2;
if(a[mid]<x) l=mid;
else r=mid;
}
if(a[r]==x)
return r;
else return -1;
}
int main(){
a[0]=-1e9;
scanf("%d",&s);
scanf("%d",&d);
for(int i=1;i<=s;i++){
scanf("%d",&a[i]);
}
a[s+1]=1e9;
for(int i=0;i<d;i++){
scanf("%d",&f);
printf("%d ",ef(f));
}
return 0;
}
by 514czh @ 2023-11-02 13:42:58
楼主占前排
by char_cha_ch_ @ 2023-11-02 13:52:14
你这个代码没什么问题啊,就是数组开小了,改成int a[1000010];就可以了
by Kratos_Charger @ 2023-11-02 16:29:28
你这个代码没什么问题啊,就是数组开小了,改成int a[1000010];就可以了,我是陈豪小子(wschxz)
by 514czh @ 2023-11-02 16:29:52
@_zzdmz 双Q
by char_cha_ch_ @ 2023-11-02 17:02:44
@wschxz 没事