Cod sursa(job #428500)

Utilizator nautilusCohal Alexandru nautilus Data 29 martie 2010 12:15:30
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
#include<vector>
#include<map>

#define dmax 103

using namespace std;

ofstream fout("loto.out");

map<long, long> viz;
long nr,n,a[dmax],suma;
vector<long> s;

void generare()
{
 long i,j,k;
	
 for (i=1; i<=n; i++)
	 for (j=1; j<=n; j++)
		 for (k=1; k<n; k++)
			 {
			  viz[a[i]+a[j]+a[k]]=1;
			  s.push_back(a[i]+a[j]+a[k]);
			 }
}


void cautaresuma(long s)
{
 long i,j,k;
 
 for (i=1; i<=n; i++)
	 for (j=1; j<=n; j++)
		 for (k=1; k<n; k++)
			 if (a[i]+a[j]+a[k]==s)
				 {
				  fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
				  return ;
				 } 
}


void solve()
{
 long i,gasit=0;
	
 for (i=0; i<=s.size(); i++)
  if (viz[suma-s[i]]==1)
	 {
	  cautaresuma(s[i]);
	  cautaresuma(suma-s[i]);
	  gasit=1;
	  break;
	 }
  
 if (gasit==0)
	 fout<<"-1";
}


int main()
{
 long i;
	
 ifstream fin("loto.in");
 fin>>n>>suma;
 for (i=1; i<=n; i++)
	  fin>>a[i];
 
 generare();
 
 sort(a+1,a+n+1);
 
 solve();
	
 return 0;
}