Cod sursa(job #1172514)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 17 aprilie 2014 16:50:13
Problema Loto Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#define P pair<pair<int,int>,pair<int,int> >
using namespace std;
vector<P>S;
vector<P>::iterator it,itt;
int i,j,k,n,s,suma,a[110],sum;
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]);
    sort(a+1,a+n+1);
    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];
                S.push_back(make_pair(make_pair(suma,a[i]),make_pair(a[j],a[k])));
            }
    sort(S.begin(),S.end());
    for(it=S.begin();it->first.first<s;it++)
    {
        sum=it->first.first;
        it->first.first=s-it->first.first;
        itt=lower_bound(S.begin(),S.end(),*it);
        if(sum+itt->first.first==s)
        {
            printf("%d %d %d %d %d %d",it->first.second,it->second.first,it->second.second,itt->first.second,itt->second.first,itt->second.second);
            return 0;
        }
    }
    printf("-1");
    return 0;
}