Cod sursa(job #1562588)

Utilizator vladutz15FMI Cornoiu Vlad vladutz15 Data 5 ianuarie 2016 12:27:00
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 110
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,suma,vec[NMAX],s1,s2,ok;
struct Suma
{
    int s,a,b,c;
} p,p1,p2;
vector<Suma> v;

bool cmp(Suma x, Suma y)
{
    return (x.s < y.s);
}

int main()
{
    int i, j, k;
    vector<Suma>::iterator it, jt;
    f>>n>>suma;
    for (i = 1;i <= n;i++)
        f>>vec[i];
    for (i = 1;i <= n;i++)
        for (j = i;j <= n;j++)
            for (k = j;k <= n;k++)
            {
                p.a = vec[i];
                p.b = vec[j];
                p.c = vec[k];
                p.s = p.a + p.b + p.c;
                v.push_back(p);
            }
    sort(v.begin(), v.end(), cmp);
    for (it = v.begin();it != v.end();it++)
    {
        s1 = it->s;
        p.s = suma - s1;
        jt = lower_bound(v.begin(), v.end(), p, cmp);
        s2 = jt->s;
        if (s1 + s2 == suma)
        {
            p1 = *it;
            p2 = *jt;
            ok = 1;
            break;
        }
    }
    if (!ok)
    {
        g<<-1;
        return 0;
    }
    g<<p1.a<<" "<<p1.b<<" "<<p1.c<<" "<<p2.a<<" "<<p2.b<<" "<<p2.c;
}