Cod sursa(job #2240929)

Utilizator YetoAdrian Tonica Yeto Data 14 septembrie 2018 14:57:00
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <algorithm>
using namespace std;
int n, s, i, j, k, m, v[101], st, dr;
struct loto {
    int s;
    int x,y,z;
    }V[1000001];
int criteriu(loto a, loto 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++) {
                V[++m].s=v[i]+v[j]+v[k];
                V[m].x=v[i];
                V[m].y=v[j];
                V[m].z=v[k];
            }
        }
    }

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

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

    fout<<-1;
    return 0;
}