Cod sursa(job #1803324)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 11 noiembrie 2016 11:53:36
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <stdio.h>
#include <algorithm>

int v[101];

struct loto
{
    int sum, a, b, c;
} rez[400000];

using namespace std;

int verif( loto x , loto y )
{
    return x.sum<y.sum;
}

int main()
{
    freopen( "loto.in", "r", stdin );
    freopen( "loto.out", "w", stdout );

    int n, s, k, i, j, nr=1, min=1, max, st=0;

    scanf( "%d%d", &n, &s );

    for( i=1; i<=n; i++ )
        scanf( "%d", &v[i] );

    for(i=1; i<=n; i++)
        for(j=i; j<=n; j++)
            for(k=j; k<=n; k++)
                rez[nr].sum=v[i]+v[j]+v[k], rez[nr].a=v[i], rez[nr].b=v[j], rez[nr].c=v[k], nr++;

    max=nr-1;

    sort(rez+1,rez+nr,verif);

    while( min<=max && st==0 )
    {
        if( rez[min].sum+rez[max].sum>s )
            max--;
        else if( rez[min].sum+rez[max].sum<s )
            min++;
        else
            st=1;
    }

    if( min>max )
        printf( "-1" );
    else
        printf( "%d %d %d %d %d %d", rez[min].a, rez[min].b, rez[min].c, rez[max].a, rez[max].b, rez[max].c );

    return 0;
}