Cod sursa(job #639658)

Utilizator lianaliana tucar liana Data 23 noiembrie 2011 18:57:42
Problema Loto Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <vector>
#define p 666013
#define nmax 105
using namespace std;
struct element{long x1, x2, x3, val;};
long i, n, x, a, s, v[nmax], j, k;
bool g;
element el;
vector <element> ma[p+5];
vector <element>::iterator it;

int main()
{
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%ld %ld",&n,&s);
	for(i=1;i<=n;i++)
		scanf("%ld",&v[i]);
	for (i=1;i<=n;i++)
		for (j=i;j<=n;j++)
			for (k=j;k<=n;k++)
			{
				x=v[i]+v[j]+v[k];	a=x%p;
				el.val=x;	el.x1=v[i];	el.x2=v[j];	el.x3=v[k];
				ma[a].push_back(el);
				x=s-(v[i]+v[j]+v[k]);
				a=x%p;
				for (it=ma[a].begin();it!=ma[a].end();it++)
					if ((*it).val==x)
					{
						printf("%ld %ld %ld %ld %ld %ld",(*it).x1,(*it).x2,(*it).x3,v[i],v[j],v[k]);
						i=j=k=n+1;	g=1;	break;
					}
			}
	if(!g)
		printf("-1");
	return 0;
}