Cod sursa(job #163017)

Utilizator DorinOltean Dorin Dorin Data 21 martie 2008 08:31:37
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <cstdio>
#include <algorithm>

using namespace std;

long x[1000010];
long nrx,i,j,k,n,s,g,sum,aux,poz1,poz2,t,p;
long v[1310];

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("%d %d %d",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;
}