Cod sursa(job #1070695)

Utilizator margikiMargeloiu Andrei margiki Data 1 ianuarie 2014 19:44:21
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int i,j,k,n,VV,S,a[105],var;
struct elem
{
    long long e1,e2,e3,s;
}v[1000000];
int cmp (elem x, elem y)
{
    if (x.s>=y.s) return 0;
        else return 1;
    return 1;
}
int cb (int x)
{
    int mij,ci,cs;
    ci=1; cs=VV;
    while (ci<=cs)
    {
        mij=(cs+ci)/2;
        if (x==v[mij].s) return mij;
            else if (x>v[mij].s) ci=mij+1;
                else cs=mij-1;
    }
    return 0;
}
int main ()
{
    f>>n>>S;
    for (i=1; i<=n; ++i)
        f>>a[i];

    for (i=1; i<=n; ++i)
        for (j=i; j<=n; ++j)
            for (k=j; k<=n; ++k)
            {
                v[++VV].s=a[i]+a[j]+a[k];
                v[VV].e1=a[i];
                v[VV].e2=a[j];
                v[VV].e3=a[k];
            }
    sort (v+1,v+VV+1,cmp);
    for (i=1; i<=VV; ++i)
    {
        var=cb(S-v[i].s);
        if (var!=0)
        {
            g<<v[i].e1<<" "<<v[i].e2<<" "<<v[i].e3<<" "<<v[var].e1<<" "<<v[var].e2<<" "<<v[var].e3;
            return 0;
        }
    }
    g<<"-1\n";
    return 0;
}