Cod sursa(job #2581948)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 16 martie 2020 02:22:42
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>


using namespace std;

#define maxn 101


long sol[maxn*maxn*maxn];
long v[maxn];
long n,s;

int sort(const void *a,const void *b)
{
    return *(long *) a- *(long *)b;
}

void afisare(long a)
{
    long i,j,l;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(l=1;l<=n;l++)
                if(v[i]+v[j]+v[l]==sol[a]) {printf("%ld %ld %ld",v[i],v[j],v[l]);return ;}

}

int main()
{

    freopen("loto.in","rt",stdin);
    freopen("loto.out","wt",stdout);

    long i,j,l,t;

    scanf("%ld%ld",&n,&s);
    for(i=1;i<=n;i++)
        scanf("%ld",&v[i]);
    long nr=0;

    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(l=1;l<=n;l++)
                {
                sol[nr++]=v[i]+v[j]+v[l];
                }
//    qsort(sol,nr,sizeof(sol[0]),sort);
    sort(sol,sol+nr);
    t=nr-1;
    for(i=0;i<nr && t>=0 ;i++)
        {
        while(sol[i]+sol[t]>s  && t>=0) t--;
        if(t<0) break;
        if(sol[i]+sol[t]==s) {afisare(i);printf(" ");afisare(t);printf("\n");return 0;}
        }
    printf("-1\n");


    return 0;
}