Cod sursa(job #709930)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 8 martie 2012 18:29:54
Problema Loto Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <algorithm>
#include <vector>
#define f first
#define s second
#define mp make_pair
using namespace std;

int v[105];
vector<pair< pair<int,int > , pair<int, int> >  > vct;

int main()
{
	int n,Sum;
	freopen("loto.in","r", stdin);
	freopen("loto.out","w", stdout);
	scanf("%d %d",&n,&Sum);
	for(int i=1;i<=n;i++)
		scanf("%d",&v[i]);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			for(int k=1;k<=n;k++)
			{
				vct.push_back(mp(mp(v[i]+v[j]+v[k],v[i]),mp(v[j],v[k])));
			}
	sort(vct.begin(),vct.end());
	int poz=vct.size()-1;
	for(unsigned int i=0;i<vct.size();i++)
	{
	 // int poz=cautbin(Sum-vct[i].f.f);
		if(vct[poz].f.f+vct[i].f.f>Sum)
			poz--;
		if(vct[poz].f.f+vct[i].f.f==Sum)
		{
			printf("%d %d %d %d %d %d",vct[i].f.s,vct[i].s.f,vct[i].s.s,vct[poz].f.s,vct[poz].s.f,vct[poz].s.s);
			return 0;
	    }
	}
	printf("-1");


	return 0;
}