Cod sursa(job #3229981)

Utilizator Jorj19Bunea George Jorj19 Data 18 mai 2024 16:25:35
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("loto.in");
ofstream fout("loto.out");

int n, s, v[101], suma;

struct punct
{
	int x, y, z, s;
};
punct x[100000001];

bool comp(punct a, punct b)
{
	return a.s < b.s;
}

int main()
{
	f >> n >> s;
	for (int i = 1; i <= n; i++)
		f >> v[i];
	
	int k = 0;
	for (int i = 1; i <= n; i++)
		for (int j = i; j <= n; j++)
			for (int d = j; d <= n; d++)
				x[++k] = { v[i], v[j], v[d], v[i] + v[j] + v[d] };
	for (int i = 1; i <= k; i++)
		cout << x[i].x << " + " << x[i].y << " + " << x[i].z << " = " << x[i].s << endl;

	sort(x + 1, x + k + 1, comp);

	for (int i = 1; i <= k; i++)
	{
		suma = s - x[i].s;
		int st = 1, dr = k;
		while (st <= dr)
		{
			int mij = (st + dr) / 2;
			if (x[mij].s == suma)
			{
				cout << x[i].x << " " << x[i].y << " " << x[i].z << " " << x[mij].x << " " << x[mij].y << " " << x[mij].z;
				return 0;
			}
			if (x[mij].s < suma)
				st = mij + 1;
			else
				dr = mij - 1;
		}
	}

}