Cod sursa(job #686984)

Utilizator michael9ufoStanescu Mihai michael9ufo Data 21 februarie 2012 23:39:48
Problema Loto Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int a, b, c, d, e, f;

long S_C, NR[101];

int main()
{

    freopen("loto.in", "r", stdin);

    freopen("loto.out", "w", stdout);

    int n;

    bool stop = 0;

    long S;

    cin>>n>>S;

    for(a=1;a<=n;++a)
        cin>>NR[a];

    fclose(stdin);

    sort(NR+1, NR+n+1);

    for(a=n;a>=1 && !stop;--a)
    {

        if(NR[a]+NR[b]+5*NR[n] < S)
         {
             cout<<"-1\n";  stop = 1;break;
         }

        for(b=a;b>=1 && !stop;--b)
        {
            if(NR[a]+NR[b]+4*NR[n] < S)
             {
                stop = 1;
                break;
             }
            for(c=b;c>=1 && !stop;--c)
            {

                if(NR[a]+NR[b]+NR[c]+3*NR[n] < S)
                 {
                     stop = 1;
                    break;
                 }
                for(d=c;d>=1 && !stop;--d)
                {

                    if(NR[a]+NR[b]+NR[c]+NR[d]+2*NR[n] < S)
                        break;

                    for(e=d;e>=1 && !stop;--e)
                    {
                        if(NR[a]+NR[b]+NR[c]+NR[d]+NR[e]+NR[n] < S)
                            break;

                        for(f=e;f>=1 && !stop;--f)
                            if(NR[a]+NR[b]+NR[c]+NR[d]+NR[e]+NR[f] == S)
                            {
                                cout<<NR[a]<<" "<<NR[b]<<" "<<NR[c]<<" "<<NR[d]<<" "<<NR[e]<<" "<<NR[f]<<"\n";
                                stop = 1;
                                break;
                            }

                    }

                }

            }

        }

    }
    if(!stop)
        cout<<"-1"<<"\n";

    fclose(stdout);

    return 0;

}