Cod sursa(job #938101)

Utilizator addy01adrian dumitrache addy01 Data 11 aprilie 2013 19:11:41
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct loto {int a,b,c,sum;};
loto m[1000001];
int  x[101],s,i,j,a,b,c,k,n,dif;
int cmp(loto a,loto b){return a.sum<b.sum;}
int main()
{
    freopen ("loto.in","rt",stdin);
    freopen ("loto.out","wt",stdout);
    scanf("%ld %ld",&n,&s);
    for (i=1;i<=n;i++)  scanf("%ld",&x[i]);
    for (a=1;a<=n;a++)
        for (b=a;b<=n;b++)
            for (c=b;c<=n;c++)
                m[++k].sum=x[a]+x[b]+x[c],m[k].a=x[a],m[k].b=x[b],m[k].c=x[c];
    sort(m+1,m+k+1,cmp);
    i=1; j=k;
    while (i<=j)
    {
        dif=s-m[i].sum;
        while (m[j].sum>dif)  j--;
        if (m[j].sum==dif && (i<=j))
            {
                printf("%ld %ld %ld %ld %ld %ld\n",m[i].a,m[i].b,m[i].c,m[j].a,m[j].b,m[j].c);
                return 0;
            }
        i++;
    }
    printf("-1\n");
    return 0;
}