Cod sursa(job #446808)

Utilizator loginLogin Iustin Anca login Data 26 aprilie 2010 18:55:16
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
# include <fstream>
# include <iostream>
# include <set>
# include <vector>
# include <algorithm>
# define pb push_back
using namespace std;
struct nod{
	int a, b, c, s;
	nod (){}
	nod (int A, int B, int C, int S){
		a=A;b=B;c=C;s=S;}
	friend bool operator < (const nod &a, const nod &b){
		return a.s<b.s;
	};
};
int n, s, rez, v[10];
vector<int>V;
multiset<nod>S;

void read ()
{
	int x;
	ifstream fin ("loto.in");
	fin>>n>>s;
	for(int i=1;i<=n;i++)
	{
		fin>>x;
		V.pb(x);
	}
}

void solve ()
{
	multiset<nod>::iterator it;
	for(int i=0;i<n;++i)
		for(int j=0;j<n;++j)
			for(int k=0;k<n;++k)
				S.insert(nod(i+1, j+1, k+1, V[i]+V[j]+V[k]));
	for(multiset<nod>::iterator I=S.begin();I!=S.end() && !rez;++I)
	{
		it=S.find(nod(0, 0, 0, s-I->s));
		if (it!=S.end())
		{
			rez=1;
			v[1]=it->a;v[2]=it->b;v[3]=it->c;v[4]=I->a;v[5]=I->b;v[6]=I->c;
		}
	}
}

int main()
{
	read();
	solve ();
	ofstream fout ("loto.out");
	if (rez)
		for(int i=1;i<=6;i++)fout<<v[i]<<" ";
	else
		fout<<"-1";
	return 0;
}