Cod sursa(job #1279715)

Utilizator whoasdas dasdas who Data 30 noiembrie 2014 19:25:56
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <cstdlib>

FILE *in = fopen("loto.in", "r");
FILE *out = fopen("loto.out", "w");

int cmp (const void *p1, const void *p2)
{
    int a = *(int*)p1, b = *(int*)p2;
    return a - b;
}


bool p(int *v, int n, int k, int s, int *sol, int ii)
{
    if (k == 6)
        return s == 0;
    for (int i = ii; i < n; i++) {
        sol[k] = v[i];
        if (p(v, n, k+1, s-v[i], sol, i))
            return  true;
    }
    return false;
}


int main()
{

    int n, s;
    fscanf(in, "%d %d", &n, &s);
    int v[n], sol[n];
    for (int i = 0; i < n; i++)
        fscanf(in, "%d", &v[i]);

    qsort(v, n, sizeof(int), cmp);

    if (p(v, n, 0, s, sol, 0)) {
        for (int i = 0; i < 6; i++) {
            fprintf(out, "%d ", sol[i]);
        }
    } else {
        fprintf(out, "-1");
    }

    return 0;
}