首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

can you find it

2012-09-27 
can you find it?最近感觉二分压力超级大,所以和妹子一起做了二分的题目,好水的题目啊,可是没办法谁叫我们

can you find it?

最近感觉二分压力超级大,所以和妹子一起做了二分的题目,好水的题目啊,可是没办法谁叫我们太弱了呢,继续加油,我要变大牛,不要做菜鸟。

#include<iostream>#include<cmath>#include<algorithm>using namespace std;int a[505],b[505],c[505];int dp[250025];int main(){ int i,j,k,m,n,s,t,cas=0,p,flag; while(scanf("%d%d%d",&k,&m,&n)!=EOF) { for(i=0;i<k;i++) scanf("%d",&a[i]); for(i=0;i<m;i++) scanf("%d",&b[i]); for(i=0;i<n;i++) scanf("%d",&c[i]); p=0; for(i=0;i<k;i++) for(j=0;j<m;j++) dp[p++]=a[i]+b[j]; sort(dp,dp+p); printf("Case %d:\n",++cas); scanf("%d",&t); while(t--) { scanf("%d",&s); flag=0; for(i=0;i<n;i++) { int l=0,r=p-1,mid; while(l<=r) { mid=(l+r)/2; if(dp[mid]+c[i]==s){ flag=1;break;} else if(dp[mid]+c[i]<s) l=mid+1; else if(dp[mid]+c[i]>s) r=mid-1; } if(flag) break; } if(flag) printf("YES\n"); else printf("NO\n"); }} return 0;}

1楼yangshuolll2小时前
好厉害啊~~~求罩~~

热点排行