卜卦

问题 E: 卜卦

提交: 1 解决: 1
[提交][状态][讨论版][命题人:qianyouyou][Edit] [TestData)]

题目描述

赵神是一个特别特别闷骚的人。别看他平日表现很高冷,其实他一直暗恋着自己的小迷妹小花花,一日不见兮,思之如狂。马上快七夕了,赵神想卜一卦算一下他的爱情幸运数,于是他找到了yoyo半仙替他卜卦。yoyo半仙需要赵神的3个幸运数字以及小花花的3个幸运数字方可进行卜卦。已知赵神的3个幸运数字是’5’’2’’0’而小花花的幸运数字是abc,(保证由5,2,0,a,b,c,这6个数各不相同,且abc均为30以内的素数)。卜卦规则如下:
由{520abc}组成的6个各不相同数中选取最小的3个数作为加数,其余最大的3个数作为基数。每一个数若加上加数仅能被基数整除,其他素数均不能整除,则该数称为幸运数。其中第1314个幸运数为爱情幸运数。
现在你刚好知道小花花的幸运数,请你帮yoyo完成卜卦吧。PS:顺利完成任务后则会收获赵神珍藏版kiss一枚。

输入

首行输入t,代表t组测试样例

接下来t行输入三个数abc。

输出

输出第1314个幸运值

样例输入

2
7 3 11
7 11 13

样例输出

29541015622
1775105893556
#include<bits/stdc++.h>
using namespace std;
#define  ll long long
const int fort=1314;
ll coeff[6];
int cmp(ll a,ll b)
{
    return a>b;
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        cin>>coeff[0]>>coeff[1]>>coeff[2];
        coeff[3]=5;
        coeff[4]=2;
        coeff[5]=0;
        sort(coeff,coeff+6,cmp);
        priority_queue<ll,vector<ll>,greater<ll> >pq;
        set<ll> s;
        set<ll> ans;
        pq.push(1);
        s.insert(1);
        for(int i=0;;i++){
            ll x=pq.top();
            pq.pop();
            if(i){
                for(int k=3;k<6;k++){
                    ans.insert(x-coeff[k]);
                    if(ans.size()==fort)
                        break;
                }
                if(ans.size()==fort){
                    set<ll>::reverse_iterator it=ans.rbegin();
                    cout<<*it<<endl;
                    break;
                }
            }//if
            for(int j=0;j<3;j++){
                ll x2=x*coeff[j];
                if(!s.count(x2)){
                    s.insert(x2);
                    pq.push(x2);
                }
            }
        }
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值