Cod sursa(job #2361280)

Utilizator YetoAdrian Tonica Yeto Data 2 martie 2019 14:18:26
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <algorithm>
using namespace std;
int n, s, i, j, k, v[101], st, dr, m;
struct doc {
    int s;
    int x, y, z;
}x[1000001];

int criteriu (doc a, doc b) {
    return a.s<b.s;
}

int main () {
    ifstream fin ("loto.in");
    ofstream fout ("loto.out");
    fin>>n>>s;
    for (i=1;i<=n;i++) {
        fin>>v[i];
    }

    for (i=1;i<=n;i++) {
        for (j=i;j<=n;j++) {
            for (k=j;k<=n;k++) {
                x[++m].s=v[i]+v[j]+v[k];
                x[m].x=v[i];
                x[m].y=v[j];
                x[m].z=v[k];
            }
        }
    }

    sort(x+1, x+m+1, criteriu);

    for (i=1;i<=m;i++) {
        int y=s-x[i].s;
        st=i;
        dr=m;
        while (st<=dr) {
            int mid = (st+dr)/2;
            if (x[mid].s==y) {
                fout<<x[i].x<<" "<<x[i].y<<" "<<x[i].z<<" "<<x[mid].x<<" "<<x[mid].y<<" "<<x[mid].z;
                return 0;
            }
            if (x[mid].s<y)
                st=mid+1;
            else
                dr=mid-1;
        }
    }

    fout<<-1;
    return 0;
}