Cod sursa(job #1172535)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 17 aprilie 2014 17:14:07
Problema Loto Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;
struct P
{
    int a,b,c,d;
};
vector<P>S;
vector<P>::iterator it,itt;
P aux;

int i,j,k,n,s,suma,a[110],sum;
bool crit(P a,P b)
{
    return a.a<b.a;
}
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",&a[i]);
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
            {
                suma=a[i]+a[j]+a[k];
                aux.a=suma;
                aux.b=a[i];
                aux.c=a[j];
                aux.d=a[k];
                S.push_back(aux);
            }
    sort(S.begin(),S.end(),crit);
    for(it=S.begin();it->a<s;it++)
    {
        aux.a=s-it->a;
        itt=lower_bound(S.begin(),S.end(),aux,crit);
        if(it->a+itt->a==s)
        {
            printf("%d %d %d %d %d %d",it->b,it->c,it->d,itt->b,itt->c,itt->d);
            return 0;
        }
    }
    printf("-1");
    return 0;
}