栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2021CCPC广州Three Integers(思维)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021CCPC广州Three Integers(思维)


The 2021 CCPC Guangzhou onsite H题 Three Integers

emm真没啥好说的,分类讨论即可,合理运用倍数关系
注意存在一个0的时候且存在一个数为1 那么倍数就必须扩大下 否则会被hack到死

因为x y z 不能超过1e18
且a b c范围1e9
我设置的倍数趋近于1e9
但是可能会被这种数据卡,a=0,b=1,c=1e9
此时不能单纯的用

signed main()
{
    ll t;
    read(t);
    while(t--)
    {

        ll a,b,c;
        read(a);
        read(b);
        read(c);
        if(a==b&&b==c)
        {

            if(a==0)
            {
                printf("YESn");
                printf("1 1 1n");
                continue;
            }

            printf("NOn");
            continue;
        }

        if(a!=0&&b!=0&&c!=0)
        {
            ll fuck=1e9-10;
//1e9+1e9+1e9*(1e9-2)
            ll x,y,z;
            x=a;
            y=a*fuck+b+c;
            z=a*fuck+c;

            if((x%y==a)&&(y%z==b)&&(z%x==c))
            {
                printf("YESn");
                printf("%lld %lld %lldn",x,y,z);
                continue;
            }
// a+b+c   b+c

            x=a+b+c*fuck;
            y=b+c*fuck;
            z=c;
            if((x%y==a)&&(y%z==b)&&(z%x==c))
            {
                printf("YESn");
                printf("%lld %lld %lldn",x,y,z);
                continue;
            }
            x=a+b*fuck;
            y=b;
            z=a+b*fuck+c;
            if((x%y==a)&&(y%z==b)&&(z%x==c))
            {
                printf("YESn");
                printf("%lld %lld %lldn",x,y,z);
                continue;
            }

            printf("NOn");
            continue;
        }


        ll op=0;
        if(a==0)
            op++;
        if(b==0)
            op++;
        if(c==0)
            op++;
        if(op==2)
        {
     
            printf("YESn");
            if(a!=0)
            {

                printf("%lld %lld %lldn",a,2*a,2*a);

            }
            if(b!=0)
            {

                printf("%lld %lld %lldn",2*b,b,2*b);

            }
            if(c!=0)
            {

                printf("%lld %lld %lldn",2*c,2*c,c);

            }
            continue;
        }
        if(op==1)
        {

            ll need= 1e9-10;

            if(a==0)
            {

                printf("YESn");

                if(b==1)
                {
                    need=need*10;
    

                }
                printf("%lld %lld %lldn",need*b,b,need*b+c);
                continue;

            }
            if(b==0)
            {

                if(c==1)
                {
                    need=need*10;
            

                }
                printf("YESn");
                printf("%lld %lld %lldn",need*c+a,need*c,c);
                continue;
            }
            if(c==0)
            {

                if(a==1)
                {
                    need=need*10;
                }
                printf("YESn");
                printf("%lld %lld %lldn",a,need*a+b,need*a);
                continue;
            }

            continue;
        }

        printf("NOn");

    }



}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号