Cod sursa(job #203527)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 17 august 2008 12:10:38
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
using namespace std;

#include <cstdio>
#include <algorithm>
#include <map>

#define IN "loto.in"
#define OUT "loto.out"
#define FOR(i,a,b) for(int i=a;i<=b;++i) 
#define N_MAX 1<<7 


int N,S;
int v[N_MAX];
struct triplet 
{  
    int x,y,z;  
    triplet() { x = y = z = 0; };  
    triplet ( int a, int b, int c ) { x = a; y = b; z = c; };  
}; 
map<int, triplet> SM; 


void scan()
{
	freopen(IN, "r",stdin);
	freopen(OUT, "w",stdout);
	scanf("%d%d\n", &N,&S);
	FOR(i,0,N-1)
		scanf("%d", &v[i]);
}

void solve()
{
	FOR(i,0,N-1)
	FOR(j,i,N-1)
	FOR(k,j,N-1)
	{
		int sum = v[i] + v[j] + v[k];
		SM[sum] = triplet(i,j,k);
		if (SM.find(S-sum) != SM.end())
		{
			printf("%d %d %d %d %d %d\n",v[i],v[j],v[k],v[SM[S-sum].x],v[SM[S-sum].y],v[SM[S-sum].z]);
			return;
		}		
	}	
	printf("-1\n");
}

int main()
{
	scan();
	solve();
	return 0;
}