Cod sursa(job #2625791)

Utilizator DariaCretuCretu Daria Stefana DariaCretu Data 6 iunie 2020 10:14:09
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct suma {
	int b1, b2, b3, sum;
}bilete[1000005];


bool comparare(suma m, suma n)
{
	return m.sum < n.sum;
}

int n, v[1001], s;
int main()
{
	f >> n >> s;
	for (int i = 1; i <= n; i++)
		f >> v[i];
	int num = 0;
	for (int i = 1; i <= n; i++)
		for (int j = i; j <= n; j++)
			for (int k = j; k <= n; k++)
			{
				num++;
				bilete[num].b1 = v[i];
				bilete[num].b2 = v[j];
				bilete[num].b3 = v[k];
				bilete[num].sum = v[i] + v[j] + v[k];
			}
	sort(bilete + 1, bilete + num+1, comparare);
	int i = 1, j = num, ok = 0;
	while (i <= j)
	{
		if (bilete[i].sum + bilete[j].sum == s)
		{
			g << bilete[i].b1 << " " << bilete[i].b2 << " " << bilete[i].b3 << " " << bilete[j].b1 << " " << bilete[j].b2 << " " << bilete[j].b3;
			ok = 1;
			break;
		}
		else
			if (bilete[i].sum + bilete[j].sum > s)
				j--;
			else
				i++;
	}
	if (ok == 0)
		g << -1;
	return 0;


}