Cod sursa(job #613103)

Utilizator PetcuIoanPetcu Ioan Vlad PetcuIoan Data 15 septembrie 2011 21:43:53
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1010000],b[110];
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    int n,s,i,j,k,u=0,st,dr,x,y,z,t,v,q;
    scanf("%d%d",&n,&s);
    for(i=1;i<=n;i++)
        scanf("%d",&b[i]);
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
                a[++u]=b[i]+b[j]+b[k];
    sort(a+1,a+u+1);
    dr=u;
    for(st=1;st<=u;st++)
    {
        while(a[dr]>s-a[st])
            dr--;
        if(a[dr]==s-a[st])
            break;
    }
    if(st==u+1)
    {
        printf("-1");
        return 0;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
                if(b[i]+b[j]+b[k]==a[st])
                {
                    x=b[i];
                    y=b[j];
                    z=b[k];
                    goto label1;
                }
    label1:
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
                if(b[i]+b[j]+b[k]==a[dr])
                {
                    t=b[i];
                    q=b[j];
                    v=b[k];
                    goto label2;
                }
    label2:
    printf("%d %d %d %d %d %d",x,y,z,t,q,v);
    return 0;
}