Cod sursa(job #73513)

Utilizator slayer4uVictor Popescu slayer4u Data 19 iulie 2007 08:59:50
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct lol
{
	long a,b,c,sum;
};
lol m[1000001];
long x[101],s,i,j,a,b,c,k,n,dif;
int cmp(lol a,lol b) 
{ 
	return a.sum<b.sum; 
}
int main()
{
	freopen ("loto.in","rt",stdin);
	freopen ("loto.out","wt",stdout);

	scanf("%ld %ld",&n,&s);
	for (i=1;i<=n;i++)
		scanf("%ld",&x[i]);


	for (a=1;a<=n;a++)
		for (b=a;b<=n;b++)
			for (c=b;c<=n;c++)
				m[++k].sum=x[a]+x[b]+x[c],m[k].a=x[a],m[k].b=x[b],m[k].c=x[c];

	sort(m+1,m+k+1,cmp);

	i=1;
	j=k;
	while (i<=j)
	{
		dif=s-m[i].sum;
		while (m[j].sum>dif)
			j--;
		if (m[j].sum==dif && (i<=j))
			{printf("%ld %ld %ld %ld %ld %ld\n",m[i].a,m[i].b,m[i].c,m[j].a,m[j].b,m[j].c);return 0;}
		i++;
	}
	printf("-1\n");
	return 0;
}