Cod sursa(job #298557)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 6 aprilie 2009 11:00:58
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;

int N, S;
int v[105];
struct Numere
{
	int a, b, c, suma;
};
vector <Numere> a;

int cmp(const Numere &x, const Numere &y)
{
	return x.suma < y.suma;
}

int main()
{
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	
	int i, j, k;
	scanf("%d %d", &N, &S);
	
	for (i = 1; i <= N; i++) scanf("%d", &v[i]);
	
	for (i = 1; i <= N; i++)
		for (j = i; j <= N; j++)
			for (k = j; k <= N; k++)
			{
				Numere x;
				x.a = v[i]; x.b = v[j]; x.c = v[k];
				x.suma = v[i] + v[j] + v[k];
				a.push_back(x);
			}
	sort(a.begin(), a.end(), cmp);
	
	i = 0; j = a.size() - 1;
	
	while (i <= j)
	{
		int dif = S - a[i].suma;
		while (a[j].suma > dif) j--;
		if (a[j].suma == dif)
		{
			printf("%d %d %d %d %d %d\n", a[i].a, a[i].b, a[i].c, a[j].a, a[j].b, a[j].c);
			return 0;
		}
		i++;
	}
	printf("-1\n");
	return 0;
}