AcWing 800. 数组元素的目标和
原题链接
简单
作者:
第一WA者金银花
,
2019-08-09 08:09:27
,
所有人可见
,
阅读 685
(正解虽然不是二分,但是可以练一练手写二分)写二分查找的时候要多调试,因为二分很容易死循环,或者答案错误
#include<stdio.h>
int n,m,x,a[100001],k;
int find(int x,int l,int r){
if(l>r){
if(x==a[l]) return l;
else return -1;
}
int mid=(l+r)>>1;
if(x>a[mid]) return find(x,mid+1,r);
else return find(x,l,mid-1);
}
int main(){
scanf("%d%d%d",&n,&m,&x);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++){
scanf("%d",&k);
if(k>=x) continue;
int j=find(x-k,1,n);
if(j!=-1){
printf("%d %d",j-1,i-1);
return 0;
}
}
}