Cod sursa(job #3186992)

Utilizator misu_LIXulescu Vasile misu_L Data 26 decembrie 2023 20:45:52
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("loto.in");
ofstream cout("loto.out");

struct ceva {
    int x, y, z;
    int sum;
};

bool cmp (ceva n, ceva m) {
    return n.sum < m.sum;
}

int n, s, a[102], lg;
ceva v[1000005];

int main()
{
    cin >> n >> s;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    for (int i = 1; i <= n; i++)
        for (int j = i; j <= n; j++)
            for (int k = j; k <= n; k++) {
                v[++lg].sum = a[i] + a[j] + a[k];
                v[lg].x = a[i];
                v[lg].y = a[j];
                v[lg].z = a[k];
            }
    sort(v+1, v+lg+1, cmp);

    for (int i = 1; i <= lg; i++) {
        int ss = s - v[i].sum; /// searched sum
        int st = 1, dr = lg, poz = -1;
        while (st <= dr) {
            int mij = (st+dr)/2;
            if (v[mij].sum == ss) {
                cout << v[i].x << " " << v[i].y << " " << v[i].z << " " << v[mij].x << " " << v[mij].y << " " << v[mij].z;
                return 0;
            }
            else if (v[mij].sum > ss)
                dr = mij-1;
            else
                st = mij+1;
        }
    }
    cout <<-1;
    return 0;
}