HDU-2141 can you find it?

来源:互联网 发布:阿里云ip地址查询 编辑:程序博客网 时间:2024/05/17 07:45

二分检索

#include <iostream>#include <algorithm>#define M 505int A[M],B[M],C[M];int Sub[M*M];int l,m,n;int s,x;int idx;int idx_c;bool b_search(int num){int st,md,ed;st=0;ed=l*m-1;while (ed>=st){md=(st+ed)/2;if(Sub[md]<num){st=md+1;continue;}else if(Sub[md]>num){ed=md-1;continue;}return true;}return false;}int main(){while (std::cin>>l>>m>>n){for(int i=0;i!=l;i++){std::cin>>A[i];}for(int i=0;i!=m;i++){std::cin>>B[i];}for(int i=0;i!=n;i++){std::cin>>C[i];}idx=0;for(int i=0;i!=l;i++){for(int j=0;j!=m;j++){Sub[idx++]=A[i]+B[j];}}std::sort(Sub,Sub+m*l);std::cin>>s;std::cout<<"Case "<<++idx_c<<":"<<std::endl;for(int i=0;i!=s;i++){std::cin>>x;int j;for( j=0;j!=n;j++){if(b_search(x-C[j])){std::cout<<"YES"<<std::endl;break;}}if(j==n){std::cout<<"NO"<<std::endl;}}memset(A,0,sizeof(A));memset(B,0,sizeof(B));memset(C,0,sizeof(C));memset(Sub,0,sizeof(Sub));}}


原创粉丝点击