Cod sursa(job #1068328)

Utilizator DGVanceaDragos Gabriel Vancea DGVancea Data 28 decembrie 2013 11:28:58
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int a[101],n,s,st[101];
int compar(const void *a,const void *b)
{
    return ( *(int*)b - *(int*)a );
}

void afis()
{
    for(int i=0; i<n; i++)
        while(st[i])
        {
            printf("%d ",a[i]);
            st[i]--;
        }

}
int u=0;
void back(int k)
{
    if(k<n)
    {
        if(u==6 && s==0)
        {
            afis();
            exit (0);
        }
        else
        {
            for(int i=0; i<=s/a[k]; i++)
            {
                st[k]=i;
                u+=i;
                s-=i*a[k];
                back(k+1);
                s+=i*a[k];
                st[k]=0;
                u-=i;
            }
        }

    }
}
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d%d",&n,&s);
    int i;
    for(i=0; i<n; i++)
        scanf("%d",&a[i]);
    qsort(a,n,sizeof(int),compar);
    back(0);
    printf("-1");
    return 0;
}