Cod sursa(job #298575)

Utilizator krateCiurdariu Dan krate Data 6 aprilie 2009 11:14:51
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

int N;
int v[105],S;
struct Numere
{
	int a,b,c,suma;
};

vector <Numere> a;

int cmp(const Numere &x,const Numere &y)
{ 
	return x.suma<y.suma;
}

int main()
 {
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	
	int i,j,k;
	scanf("%d %d",&N,&S);
	for(i=1;i<=N;i++)
		scanf("%d",&v[i]);
	for(i=1;i<=N;i++)
		for(j=i;j<=N;j++)
			for(k=j;k<=N;k++)
			{
				 Numere x;
				 x.a=v[i];
				 x.b=v[j];
				 x.c=v[k];
				 x.suma=v[i]+v[j]+v[k];
				 a.push_back(x);
			}
	sort(a.begin(),a.end(),cmp);
	i=0;
	j=a.size()-1;
	while(i<=j)
	{
		int dif=S-a[i].suma;
		while(a[j].suma>dif) j--;
		if(a[j].suma==dif)
		{
			printf("%d %d %d %d %d %d",a[i].a,a[i].b,a[i].c,a[j].a,a[j].b,a[j].c);
			return 0;
		}
		i++;
	}
	printf("-1");
	return 0;
}