Cod sursa(job #458165)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 23 mai 2010 15:25:37
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>
#include<algorithm>
using namespace std;

int s[1000001],a[102],r[1000001][4],st,dr,m,caut,ok,k,j,i,ka=0,sum,n;
int main ()
{
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%d%d",&n,&sum);
	ok=0;
	for (i=1; i<=n; i++)
		scanf("%d",&a[i]);
	ka=0;
	for (i=1; i<=n; i++)
		if (a[i]<sum)
		for (j=1; j<=n; j++)
			if (a[i]+a[j]<sum)
			for (k=1; k<=n; k++)
				if (a[i]+a[j]+a[k]<sum)
				{
					s[++ka]=a[i]+a[j]+a[k];
					r[ka][1]=a[i];
					r[ka][2]=a[j];
					r[ka][3]=a[k];
				}
	sort(s+1,s+ka+1);
	for (i=1; i<=ka; i++)
	{
		caut=sum-s[i];
		st=1;
		dr=n;
		while (st<=dr)
		{
			m=(st+dr)/2;
			if (s[m]==caut) 
			{
				printf("%d %d %d %d %d %d",r[i][1],r[i][2],r[i][3],r[m][1],r[m][2],r[m][3]);
				ok=1; i=ka+1;
				break;
			}
			else if (caut>s[m]) st=m+1;
			else dr=m-1;
		}
	}
	if (!ok) printf("-1");
	return 0;
}