Cod sursa(job #41374)

Utilizator gigi_becaliGigi Becali gigi_becali Data 28 martie 2007 11:03:08
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <cstdio>
#define maxn 100003
#define maxlog 17
#include <algorithm>
using namespace std;

int n, S, x[128];
int H[maxn+15][maxlog+2][5+3];
void citire()
{
	freopen("loto.in", "r", stdin);
	scanf("%d %d\n", &n, &S);
	for(int i=1;i<=n;i++) scanf("%d ", x+i);
}

void insert(int val, int i, int j, int k)
{
	int h1=val%maxn;
	int h2=h1%maxlog;
	H[h1][h2][0]=val;
	H[h1][h2][1]=i;
	H[h1][h2][2]=j;
	H[h1][h2][3]=k;
}

int find(int val)
{
	int h1=val%maxn;
	int h2=h1%maxlog;
	if(H[h1][h2][0]==val) return 1;
	return 0;
}

int main()
{
	citire();
	freopen("loto.out", "w", stdout);
	int i, j, k;
	
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			for(k=1;k<=n;k++) insert(x[i]+x[j]+x[k], i, j, k);
		
	int h1, h2;
	int sol[7];
/*
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++) 
			for(k=1;k<=n;k++)
			{
				int val=S-x[i]-x[j]-x[k];
				h1=val%maxn;
				h2=h1%maxlog;
				if(H[h1][h2][0]==val)
				{
					sol[1]=x[i];
					sol[2]=x[j];
					sol[3]=x[k];
					sol[4]=x[H[h1][h2][1]];
					sol[5]=x[H[h1][h2][2]];
					sol[6]=x[H[h1][h2][3]];
					sort(sol+1, sol+7);
					for(int r=1;r<=6;r++) printf("%d ", sol[r]);
					return 0;
				}
			}
			printf("-1\n");
	*/
			return 0;
}