#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int a[550],b[550],c[550],ab[260000];
int main() {
int l,n,m,s,cnt=0;
while(~scanf("%d%d%d",&l,&n,&m))
{
for(int i=1;i<=l;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++)scanf("%d",&b[i]);
for(int i=1;i<=m;i++)scanf("%d",&c[i]);
int len=1;
for(int i=1;i<=l;i++)
for(int j=1;j<=n;j++)
ab[len++]=a[i]+b[j];
sort(ab+1,ab+len);
sort(c+1,c+1+m);
scanf("%d",&s);
printf("Case %d:\n",++cnt);
while(s--)
{
int x,flag=0;
scanf("%d",&x);
for(int i=1;i<=m;i++)
{
if(c[i]>=x&&flag)break;
{
int k=x-c[i];
int l=1,r=len-1;
while(l<r)
{
int mid=(l+r)/2;
if(ab[mid]>=k)r=mid;
else l=mid+1;
}
if(ab[l]==k)flag=1;
}
}
if(flag==0)printf("NO\n");
else printf("YES\n");
}
}
return 0;
}
hdu 2141 Can you find it?(二分)
最新推荐文章于 2020-03-25 15:16:25 发布