Cod sursa(job #3211774)

Utilizator Sebi_RipaSebastian Ripa Sebi_Ripa Data 10 martie 2024 12:16:18
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

struct point {
	int x, y, z, s;
};

point v[1000005];
int vct[105];

bool cmp(point a, point b) {
	return a.s < b.s;
}

int main() {
	int n, s;
	cin >> n >> s;
	for (int i = 1; i <= n; i++)
		cin >> vct[i];
	int idx = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = i; j <= n; j++) {
			for (int k = j; k <= n; k++)
				v[++idx] = { vct[i], vct[j], vct[k], vct[i] + vct[j] + vct[k] };
		}
	}
	sort(v + 1, v + idx + 1, cmp);
	for (int i = 1; i <= idx; i++) {
		int sum = s - v[i].s;
		int l = 1, r = idx;
		while (l <= r) {
			int mij = (l + r) / 2;
			if (v[mij].s == sum) {
				cout << v[i].x << ' ' << v[i].y << ' ' << v[i].z << ' ' << v[mij].x << ' ' << v[mij].y << ' ' << v[mij].z;
				exit(0);
			}
			if (v[mij].s < sum)
				l = mij + 1;
			else r = mij - 1;
		}
	}
	cout << -1;
}