搜尋
獲得需要的資料
二分搜
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n,k;
cin >> m >> n >> k;
int a[m];
vector<int>b;
for(int i=0;i<m;i++){
int x;
cin >> x;
a[i]=k-x;
}
for(int i=0;i<n;i++){
int x;
cin >> x;
b.push_back(x);
}
sort(b.begin(),b.end());
//
int ans=0;
for(int i=0;i<m;i++){
int l = 0;
int r = n-1;
while(l<=r){
int mid = (l+r)/2;
if(b[mid]>a[i]){
r=mid-1;
}else if(b[mid]==a[i]){
ans+=1;
break;
}else if(b[mid]<a[i]){
l=mid+1;
}
}
}
cout << ans << endl;
}
Last updated
Was this helpful?