思路:
将前两个数组的数加起来(ab),后两个数组数加起来(cd),然后枚举ab的值,二分cd的数进行判断。
ps:如果cd找到与ab相符合的数
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[4001],b[4001],c[4001],d[4001];
int ab[4000*4000+1],cd[4000*4000+1];
int k2;
int check(int x)
{
int left=1,right=k2-1,mid;
while (left<=right)
{
mid=(left+right)/2;
if (x==cd[mid])
{
int w=0,e=mid;
while (x==cd[e]&&e<k2)
e++,w++;
e=mid-1;
while (x==cd[e]&&e>0)
e--,w++;
return w;
}
else if (x<cd[mid])
right=mid-1;
else
left=mid+1;
}
return 0;
}
int main()
{
int t,i,j,q;
while (~scanf("%d",&