Cod sursa(job #508063)

Utilizator mraresMardare Rares mrares Data 7 decembrie 2010 15:21:16
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
// un back de cateva puncte... 30-40 tot e bun
#include <fstream>
#define nmax 105
#define mmax 6

using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

int n, S, suma, ok = 1;
int sol[nmax], v[nmax];

void afis();
void back(int k);

void back(int k)
{
    if(k == mmax+1 && ok)
        if(suma == S && ok)
        {
            afis();
            ok = 0;
        }
        else;
    else
    for(int i=1; i<=n && ok; ++i)
    {
        sol[k] = v[i];
        if(suma + sol[k] <= S)
        {
            suma = suma + sol[k];
            back(k+1);
            suma = suma - sol[k];
            sol[k] = 0;
        }
    }
}

void afis()
{
    /*
    int i;
    fout << suma << "\n";
    for(i=1; i<=mmax; ++i)
        fout << sol[i] << " ";
    fout << "\n";
    */
    fout << "-1\n";
}

int main()
{
    int i;
    fin >> n >> S;
    for(i=1; i<=n; ++i)
        fin >> v[i];
    back(1);
    return 0;
}