Cod sursa(job #531128)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 8 februarie 2011 22:34:04
Problema Loto Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

struct sum
{
    int s,a,b;
};

sum d[1000001];
int n,x,v[101];

inline int cmp(sum x,sum y)
{
    return x.s<y.s;
}

int main()
{
    int i,j,k,l,r,aux=0;
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d%d",&n,&x);
    for (i=1;i<=n;++i)
        scanf("%d",&v[i]);
    for (i=1;i<=n;++i)
        for (j=1;j<=n;++j)
            for (k=1;k<=n;++k)
            {
                d[aux].s=v[i]+v[j]+v[k];
                d[aux].a=v[i];
                d[aux].b=v[j];
                ++aux;
            }
    sort(d,d+aux,cmp);
    l=0;r=aux-1;
    while ((l<r)&&(d[l].s+d[r].s!=x))
        if (d[l].s+d[r].s>x) --r;
        else ++l;
    if (d[l].s+d[r].s!=x) printf("-1");
    else printf("%d %d %d %d %d %d",d[l].a,d[l].b,d[l].s-d[l].a-d[l].b,d[r].a,d[r].b,d[r].s-d[r].a-d[r].b);
    return 0;
}