Cod sursa(job #855518)

Utilizator BalcauIonutFMI-Balcau Ionut BalcauIonut Data 15 ianuarie 2013 01:10:41
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
#include<vector>
#define MOD 666013
using namespace std;

typedef struct {char a1,a2,a3;} sol;

int main(){
	 int a[101],sum,n,x;
	 sol y;
	 vector< int > hash[MOD];
	vector< sol > hsum[MOD];
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%d%d",&n,&sum);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	for(char i=1;i<=n;++i)
		for(char j=i;j<=n;++j)
			for(char k=j;k<=n;++k)
			{
				x=a[i]+a[j]+a[k];
				hash[x%MOD].push_back(x);
				y.a1=i;y.a2=j;y.a3=k;
				hsum[x%MOD].push_back(y);
			}
	for(char i=1;i<=n;++i)
		for(char j=i;j<=n;++j)
			for(char k=j;k<=n;++k){
				x=a[i]+a[j]+a[k];
				x=sum-x;
				if(!hash[x%MOD].empty()){
					for(int u=0;u<hash[x%MOD].size();++u)
						if(hash[x%MOD][u]==x){
							printf("%d %d %d %d %d %d",a[i],a[j],a[k],a[hsum[x%MOD][u].a1],a[hsum[x%MOD][u].a2],a[hsum[x%MOD][u].a3]);
							return 0;
						}

				}

			}
	printf("-1");
	return 0;
}