Cod sursa(job #2020120)

Utilizator MoldovanMoldovan Moldovan Data 9 septembrie 2017 14:14:39
Problema Loto Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    int n , s , i , nr;
    scanf("%d%d",&n,&s);
    vector<int>v;
    for(i=0;i<n;i++)
    {
        scanf("%d",&nr);
        v.push_back(nr);
    }
    sort(v.begin(),v.end());
    vector<int>::reverse_iterator it ,it1,it2,it3,it4,it5,it6;
    it=v.rend()-1;
    it1=v.rbegin();
    if((*it)*6>s)
    {
        printf("-1");
        return 0;
    }
    if((*it1)*6<s)
    {
        printf("-1");
        return 0;
    }
    int val=*it;
    int  ss;
    for(it=v.rbegin();it!=v.rend();it++)
            {
                ss=*it;
                if(ss+val*5<=s)
                {

                    for(it1=it;it1!=v.rend();it1++)
    {
        int  ss1=ss;
        ss1+=*it1;
        if(ss1+val*4<=s)
            for(it2=it1;it2!=v.rend();it2++)
        {
            int ss2=ss1;
            ss2+=*it2;
            if(ss2+val*3<=s)
    for(it3=it2;it3!=v.rend();it3++)
    {
        int ss3=ss2;
        ss3+=*it3;
        if(ss3+val*2<=s)
    for(it4=it3;it4!=v.rend();it4++)
    {
        int ss4=ss3;
        ss4+=*it4;
        if(ss4+val<=s)
    for(it5=it4;it5!=v.rend();it5++)
    {
       int  ss5=ss4;
        ss5+=*it5;
        if(ss5==s)
        {
            printf("%d %d %d %d %d %d",(*it),(*it1),(*it2),(*it3),(*it4),(*it5));
            return 0;
        }
    }
    }
    }
        }
    }
                }
            }
            printf("-1");
    return 0;
}