Cod sursa(job #687007)

Utilizator michael9ufoStanescu Mihai michael9ufo Data 22 februarie 2012 00:02:04
Problema Loto Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.67 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, vm = 0;

    cin>>n>>S;

    for(a=1;a<=n;++a)
    {
        cin>>NR[a];
        if(NR[a] > vm)
            vm = NR[a];
    }
    fclose(stdin);

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

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

        if(NR[a]+5*vm < S)
            continue;

        for(b=a;b>=1 && !stop;--b)
        {
            if(NR[a]+NR[b]+4*vm < S)
                continue;

            for(c=b;c>=1 && !stop;--c)
            {

                if(NR[a]+NR[b]+NR[c]+3*vm < S)
                    continue;

                for(d=c;d>=1 && !stop;--d)
                {

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

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

                        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;

}