Cod sursa(job #1172488)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 17 aprilie 2014 16:20:12
Problema Loto Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 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;
P aux;
int i,j,k,n,s,suma,a[110];
bool crit(P a,P b)
{
    return (a.first.first<b.first.first);
}
void construieste()
{
    itt=lower_bound(S.begin(),S.end(),aux,crit);
    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);

}
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];
                S.push_back(make_pair(make_pair(suma,a[i]),make_pair(a[j],a[k])));
            }
    sort(S.begin(),S.end(),crit);

    for(it=S.begin(),itt=S.end()-1;it!=itt;)
    {
        if(it->first.first+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;
        }
        if(it->first.first+itt->first.first<s)
            it++;
        else
            itt--;
    }
    printf("-1");
    return 0;
}