Cod sursa(job #458159)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 23 mai 2010 14:58:47
Problema Loto Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;

int main ()
{
	int a[101],i,j,k,l,m,n,o,s,ok=0,st,dr,mij,val;
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%d%d",&n,&s);
	for (i=1; i<=n; i++)
		scanf("%d",&a[i]);
	sort(a+1,a+n+1);
	for (i=1; i<=n; i++)
		if (a[i]<s)
			for (j=1; j<=n; j++)
				if (a[i]+a[j]<s)
					for (k=1; k<=n; k++)
						if (a[i]+a[j]+a[k]<s)
							for (l=1; l<=n; l++)
								if (a[i]+a[j]+a[k]+a[l]<s)
									for (m=1; m<=n; m++)
										if (a[i]+a[j]+a[k]+a[l]+a[m]<s)
										{
											val=s-a[i]-a[j]-a[k]-a[l]-a[m];
											st=1; dr=n; 
											while (st<=dr)
											{
												mij=(st+dr)/2;
												if (val==a[mij]) break;
												else if (val>a[mij]) st=mij+1;
												else dr=mij-1;
											}
											if (st<=dr) 
											{
												printf("%d %d %d %d %d %d\n",a[i],a[j],a[k],a[l],a[m],a[mij]);
												ok=1;
												i=n+1; j=n+1; k=n+1; l=n+1; m=n+1; o=n+1; 
											}
										}
	if (ok==0) printf("-1");
	return 0;
}