Cod sursa(job #916688)

Utilizator gener.omerGener Omer gener.omer Data 16 martie 2013 19:41:09
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <map>

using namespace std;

#define NMAX 105

int N, S, A[NMAX];
map<int, vector<int> > m;

int main()
{
	freopen("loto.in", "rt", stdin);
	freopen("loto.out", "wt", stdout);

	scanf("%d %d", &N, &S);
	for(int i = 0; i < N; i++)
		scanf("%d", &A[i]);
	
	sort(A, A+N);
		
	vector<int> sums;
	for(int i = 0; i < N;++i)
		for(int j = 0; j < N; ++j)
			for(int k = 0; k < N; ++k){
				int s = A[i]+A[j]+A[k];
				sums.push_back(s);
				vector<int> v;
				v.push_back(A[i]);
				v.push_back(A[j]);
				v.push_back(A[k]);
				if(m.find(s) == m.end()){
					m[s] = v;
				}
			}
	
	sort(sums.begin(), sums.end());
	
	int sz = sums.size();
	
	for(int i = 0; i < sz; ++i)
	{
		if(binary_search(sums.begin(), sums.end(), S-sums[i]))
		{
			vector<int> v1, v2;
			v1 = m[sums[i]], v2 = m[S-sums[i]];
			cout << v1[0] << " " << v1[1] << " " << v1[2] << " " << v2[0] << " " << v2[1] << " " << v2[2];
			return 0;
		}
	}
	printf("%d", -1);
	
	return 0;
}