AcWing 800. 数组元素的目标和(二分好爽)
原题链接
简单
作者:
老实
,
2023-11-18 22:35:31
,
所有人可见
,
阅读 51
C++ 代码
#include<iostream>
using namespace std;
#include<algorithm>
const int N=1e5+10;
int a[N],b[N];
int m,n,x;
int check(int mid,int i)
{
if(a[mid]+b[i]>x)return 1;
else if(a[mid]+b[i]<x)return 2;
return 3;
}
int main()
{ cin>>m>>n>>x;
for(int i=0;i<m;i++)cin>>a[i];
for(int j=0;j<n;j++)cin>>b[j];
for(int i=0;i<n;i++)
{
int l=0,r=m-1;
while(l<r)
{
int mid=l+r>>1;
int h=check(mid,i);
if(h==1 or h==3)r=mid;
else l=mid+1;
}
if(a[l]+b[i]==x)
{
cout<<l<<" "<<i;
return 0;
}
}
}