Cod sursa(job #812344)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 13 noiembrie 2012 19:48:20
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <stdio.h>
#include <vector>
#include <algorithm>
#define mod 666013

using namespace std;
FILE *f=fopen("loto.in","r"), *g=fopen("loto.out","w");
long long v[101];


int main()
{
	long long int sum, x, s, nr=0, i, j, k, n, t, u;
	
	fscanf(f,"%lld""%lld", &n, &sum);
	
	for(i=0;i<n;i++)
	{
		fscanf(f, "%lld", &x);
		v[i]=x;
	}
	
	sort(v, v+n);

	
	if( (v[0] * 6)>sum && (v[n-1] * 6)<sum)
	{
		fprintf(g, "%d", -1);
		return 0;
	}
	
	for(i=0; i<n && (v[i] * 6) <= sum; i++)
		for(j=i; j<n && ((v[i] + v[j] * 5) <= sum) && ((v[i] + v[n-1] * 5) >= sum); j++)
			for(k=j; k<n && ((v[i] + v[j] + v[k] * 4) <= sum) && ((v[i] + v[j] + v[n-1] * 4) >= sum); k++)
				for(t=k; t<n && ((v[i] + v[j] + v[k] + v[t] * 3) <= sum) && ((v[i] + v[j] + v[k] + v[n-1] * 3) >= sum); t++)
					for(s=t; s<n && ((v[i] + v[j] + v[k] + v[t] + v[s] * 2) <= sum) && ((v[i] + v[j] + v[k] + v[t] + v[n-1] * 2) >= sum); s++)
						for(u=s; u<n && ((v[i] + v[j] + v[k] + v[t] + v[s] + v[u]) <= sum) && ((v[i] + v[j] + v[k] + v[t] + v[s] + v[n-1]) >= sum); u++)
							if((v[i] + v[j] + v[k] + v[t] + v[s] + v[u])==sum)
							{
								fprintf(g, "%lld %lld %lld %lld %lld %lld", v[i], v[j], v[k], v[t], v[s], v[u]);
								return 0;
							}
	
	fprintf(g, "%d", -1);
	
	return 0;
}