AcWing 800. 数组元素的目标和 双指针 维护最大最小边界 AC_any
原题链接
简单
作者:
AC_any
,
2021-05-10 11:21:26
,
所有人可见
,
阅读 217
从两端逼近
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int n,m,k;
int a[N],b[N];
void acwing(){
cin>>n>>m>>k;
for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);
for (int i = 0; i < m; i ++ ) scanf("%d", &b[i]);
for(int i=0,j=m-1;i<n;i++){
//j倒着去找,如果匹配不上,则i前进
while(j>=0&&a[i]+b[j]>k){
j--;
}
if(a[i]+b[j]==k) cout<<i<<" "<<j<<endl;
}
return ;
}
int main()
{
acwing();
return 0;
}