Cod sursa(job #1679920)

Utilizator antanaAntonia Boca antana Data 8 aprilie 2016 13:02:31
Problema Loto Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdio>
#include<algorithm>
#define MAX 100
using namespace std;
struct aa{
    int x, y, z, s;
}; aa sume[MAX*MAX*MAX+1];
bool cresc(aa a, aa b)
{
    return (a.s<b.s);
}
int v[MAX+1];
int main()
{
    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);
    int i, j, k, sum, m=0, n;
    scanf("%d%d", &n, &sum);
    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++)
                if(v[i]+v[j]+v[k]<sum)
                {
                    sume[++m].s=v[i]+v[j]+v[k];
                    sume[m].x=v[i];
                    sume[m].y=v[j];
                    sume[m].z=v[k];
                }
    sort(sume+1, sume+m+1, cresc);
    i=1;
    j=m;
    while(i<=j)
    {
        while(sum-sume[j].s<sume[i].s&&j>0)
            j--;
        if(sum==sume[j].s+sume[i].s)
        {
            printf("%d %d %d %d %d %d", sume[i].x, sume[i].y, sume[i].z, sume[j].x, sume[j].y, sume[j].z);
            return 0;
        }
        i++;
    }
    printf("-1");
    return 0;
}