4334-Trouble

来源:互联网 发布:咖啡豆知乎 编辑:程序博客网 时间:2024/06/07 12:56

(http://acm.hdu.edu.cn/showproblem.php?pid=4334)

#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;long long a[40005],b[40005],c[205],d[205],e[205],f[205],g[205];long long i,j,x,k,l,n,t,flag=0,p;int main(){    scanf("%lld",&t);    while(t--)    {        flag=0;        //输入        scanf("%lld",&n);        for(i=0;i<n;i++)            scanf("%lld",&d[i]);        for(i=0;i<n;i++)            scanf("%lld",&e[i]);        for(i=0;i<n;i++)            scanf("%lld",&f[i]);        for(i=0;i<n;i++)            scanf("%lld",&g[i]);        for(i=0;i<n;i++)            scanf("%lld",&c[i]);        //合并        int cnt1=0;        for(i=0;i<n;i++)            for(j=0;j<n;j++)                a[cnt1++]=d[i]+e[j];        int cnt2=0;        for(i=0;i<n;i++)            for(j=0;j<n;j++)                b[cnt2++]=f[i]+g[j];  //三四合并        sort(a,a+cnt1);//默认从小到大         sort(b,b+cnt2);        //计算        for(i=0;i<n;i++) //第五个数组 c[]        {            j=0;            k=cnt2-1;            while(j<cnt1 && k>=0)            {                if(a[j]+b[k]+c[i]==0LL)                {                    flag=1;                    break;                }                else if(a[j]+b[k]+c[i]<0)                    j++;                else                    k--;            }        }        if(flag) cout<<"Yes"<<endl;        else cout<<"No"<<endl;    }    return 0;}
0 0
原创粉丝点击