Cod sursa(job #1558525)

Utilizator drobertDumitru Robert drobert Data 29 decembrie 2015 12:44:38
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");

#define NMAX 110

int n, suma, nr[NMAX], s1, s2, ok;
struct Suma
{
    int s, a, b, c;
} p, p1, p2;
vector<Suma> v;

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

int main()
{
    int i, j, k;
    vector<Suma>::iterator it, jt;
    f>>n>>suma;
    for (i = 1;i <= n;i++)
        f>>nr[i];
    for (i = 1;i <= n;i++)
        for (j = i;j <= n;j++)
            for (k = j;k <= n;k++)
            {
                p.a = nr[i];
                p.b = nr[j];
                p.c = nr[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<<" ";
    g<<p2.a<<" "<<p2.b<<" "<<p2.c;

}