用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

挑战程序设计 1.1

2014-01-12 作者: asdw12345举报

[c++]代码库

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<iostream>
using namespace std;
#define MAXN 1000000+10
int k[MAXN],kk[MAXN];
int m,n;
bool cmp(int x,int y)
{
    return x<y?true:false;
}
bool binary(int x)
{
    int start=0,endd=n*n;
    while(endd-start>=1)
    {
        int mid=(start+endd)/2;
        if(kk[mid]>x) endd=mid-1;
        if(kk[mid]<x) start=mid+1;
        if(kk[mid]==x) return true;
    }
    return false;
}

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        int i,j;
        for(i=0;i<n;i++) scanf("%d",&k[i]);
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                kk[i*n+j]=k[i]+k[j];
            }
        }
        sort(kk,kk+n*n,cmp);
        bool flag=false;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
//                cout<<"***"<<binary(m-k[i]-k[j])<<endl;
                if(binary(m-k[i]-k[j])) flag=true;
            }
        }
        if(flag) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...