Cod sursa(job #266562)

Utilizator rayvianPricope Razvan rayvian Data 25 februarie 2009 20:01:01
Problema Loto Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;

set<int> map;

int v[100];
int n;
int s;

void citire();
void rezolva();
int main()
{
	citire();
	rezolva();
	return 0;
}

void rezolva()
{
	ofstream g("loto.out");
	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++)
			for(int k=1; k<=n; k++)
				map.insert(v[i]+v[j]+v[k]);

	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++)
			for(int k=1; k<=n; k++)
			{
				set<int>::iterator gs;
				gs=map.find(s-v[i]-v[j]-v[k]);
				if(gs!=map.end())
				{
					g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
					for(int ii=1; ii<=n; ii++)
						for(int jj=1; jj<=n; jj++)
							for(int kk=1; kk<=n; kk++)
								if(v[ii]+v[jj]+v[kk]==s-v[i]-v[j]-v[k])
								{
									g<<v[ii]<<" "<<v[jj]<<" "<<v[kk];
									return ;
								}
				}
			}
	g<<"-1";
	g.close();
}
void citire()
{
	fstream f;
	f.open("loto.in",ios::in);
	f>>n>>s;
	for(int i=1; i<=n; i++)
		f>>v[i];

	f.close();
}