Cod sursa(job #1778158)

Utilizator andreiulianAndrei andreiulian Data 13 octombrie 2016 15:52:02
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int n, s, v[105], l[1000000], ul;
struct juma{
	int j1, j2, j3;
} jj[1000000];
int main(){
	ifstream in("loto.in");
	ofstream out("loto.out");
	int i, j, k, x, S, D, m;
	in >> n >> s;
	for (i = 1; i <= n; ++i) in >> v[i];
	for (i = 1; i <= n; ++i)
	 for (j = i; j <= n; ++j)
	  for (k = j; k <= n; ++k) {++ul; l[ul] = v[i] + v[j] + v[k]; jj[ul].j1 = v[i]; jj[ul].j2 = v[j]; jj[ul].j3 = v[k];}
	sort(l+1, l+ul+1);
	for(i = 1; i <= ul && l[i] <= s; ++i){
		x = s - l[i];
		S = 1; D = ul;
		while (S <= D){
			m = S + (D - S)/2;
			if (l[m] == x) {
				cout << jj[i].j1 << ' ' << jj[i].j2 << ' ' << jj[i].j3 << ' ';
				cout << jj[m].j1 << ' ' << jj[m].j2 << ' ' << jj[m].j3 << '\n';
				return 0;
			}
			if (l[m] > x) D = m-1;
			if (l[m] < x) S = m+1;

		}
	}
	out << "-1\n";
}