Cod sursa(job #503052)

Utilizator skullLepadat Mihai-Alexandru skull Data 21 noiembrie 2010 12:27:54
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
#define nmax 105

long x[nmax*nmax*nmax];
long nrx, i, j, k, n, s, t, p;
long v[nmax];

void afis(long x)
{
    long i,j,k;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            for (k=1;k<=n;k++)
                if (v[i]+v[j]+v[k]==x)
                    {
                    printf("%ld %ld %ld",v[i],v[j],v[k]);    
                    return;
                    }        
}
    
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
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)
            {
            nrx++;
            x[nrx]=v[i]+v[j]+v[k];
            }
sort(x+1,x+nrx+1);
t = nrx;
p=1;
while (p<=t)
    {
    while (x[p]+x[t]>s && t>0)    
        t--;
    if (x[p]+x[t]==s)
        {
        afis(x[p]);
        printf(" ");
        afis(x[t]);
        printf("\n");
        return 0;            
        }
    if (t<=0)
        break;
    while (x[p]+x[t]<s &&p <=nrx)
        p++;
    }
printf("-1\n");
return 0;
}