Cod sursa(job #458162)

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

int s[1000001],a[102],r[1000000][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++)
		for (j=1; j<=n; j++)
			for (k=1; k<=n; k++)
			{
				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[ka];
		st=1;
		dr=n;
		while (st<=dr)
		{
			m=(st+dr)/2;
			if (s[m]==caut) break;
			else if (caut>s[m]) st=m+1;
			else dr=m-1;
		}
		if (st<=dr)
		{
			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;
		}
	}
	if (!ok) printf("-1");
	return 0;
}