Cod sursa(job #1514506)

Utilizator miricelMiricel Daniel Mihai miricel Data 31 octombrie 2015 11:41:32
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <algorithm>
using namespace std;
int n,o,p,i,c,q,s,a[102],supa[1000002];
bool ok;
int lama;
struct grupa
{
    int x,y,z,sp;
}b[1000002];
int compare(grupa e,grupa r)
{
    return e.sp<r.sp;
}

int sol[6];
int main()
{
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for(i=1;i<=n;i++)
    f>>a[i];
    sort(a+1,a+n+1);
for(i=1;i<=n;i++)
    for(o=i;o<=n;o++)
       for(p=o;p<=n;p++)
           {
           c++;
           b[c].x=a[i];
           b[c].y=a[o];
           b[c].z=a[p];
           b[c].sp=a[i]+a[o]+a[p];
           }
sort(b+1,b+c+1,compare);
for(i=1;i<=c;i++)supa[i]=b[i].sp;
for(i=1;i<=c;i++)
{
    lama=supa[i];
    lama=s-lama;
    q=upper_bound(supa+1,supa+c+1,lama)-supa;
    q--;
    if(supa[q]==s-supa[i])
        {

            ok=1;
        sol[1]=b[i].x;
        sol[2]=b[i].y;
        sol[3]=b[i].z;
        sol[4]=b[q].x;
        sol[5]=b[q].y;
        sol[6]=b[q].z;
        for(i=1;i<=6;i++)g<<sol[i]<<" ";
        return 0;
        }
}
 g<<"-1";



f.close();
g.close();

    return 0;
}