HDU-2141
2017-02-17 23:55
351 查看
#include<iostream> #include <math.h> #include <stdio.h> #include <algorithm> using namespace std; long long ab[1000000]; long long a[1000],b[1000],c[1000]; int main(){ int L,N,M; int num=1; while(scanf("%d%d%d",&L,&N,&M)!=EOF){ int i=0; for(i=0;i<L;i++){ cin>>a[i]; } for(i=0;i<N;i++){ cin>>b[i]; } for(i=0;i<M;i++){ cin>>c[i]; } int S; cin>>S; int j=0,k=0,T; for(i=0;i<L;i++) for(j=0;j<N;j++) ab[k++]=a[i]+b[j]; sort(ab,ab+k); // sort(c,c+M); k=unique(ab,ab+k)-ab; cout<<"Case "<<num++<<":"<<endl; while(S--){ int d; cin>>d; if(ab[0]>d-c[0]||ab[k-1]<d-c[M-1]){ cout<<"NO"<<endl; continue; } int flag=0; for(int T1=0;T1<M&&flag==0;T1++){ long long tag=d-c[T1]; int low=0; int high=k-1; int mid; while(low<=high){ // cout<<"--"<<endl; mid=(low+high)/2; if(ab[mid]==tag){ flag=1; break; } else if(ab[mid]>tag){ high=mid-1; } else low= mid+1; } } if(flag==1)cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0; }
相关文章推荐
- HDU-2141
- hdu 2141 Can you find it? (二分查找)
- HDU 2141 Can you find it?(二分)
- hdu 2141 Can you find it? (二分法)
- HDU-2141(二分查找_创新)
- hdu 2141 Can you find it?
- (HDU - 2141)Can you find it?
- Can you find it? hdu 2141
- HDU-2141(二分搜索)
- hdu 2141 Can you find it? 二分查找
- HDU 2141 Can you find it?
- hdu_2141_Can you find it?(二分)
- HDU2141
- HDU 2141 Can you find it? (二分查找)
- hdu 2141 Can you find it? 二分查找
- hdu 2141 二分搜索
- hdu 2141 纯水题
- hdu 2141 Can you find it?(二分法)
- HDU 2141 Can you find it?(二分)
- 【HDU】2141 - Can you find it?(STL)