Cod sursa(job #428531)

Utilizator Negrimongwriter Negrimon Data 29 martie 2010 12:35:12
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
#include<algorithm>
#include<map>

using namespace std;

ifstream f("loto.in");
ofstream g("loto.out");

map <int,int> viz;
int i,nrs,n,S,okg;
int a[102];

void citire();
void sume3();
void scrie(int k,int z);

int main()
{
	citire();
	sume3();
	if (!okg) g<<-1;
	return 0;
}

void scrie(int k,int z)
{
	int saux,i,j,k2,ok1=0,ok2=0;
	for (j=1;j<=n;++j)
		for (k2=1;k2<=n;++k2)
			for (i=1;i<=n;++i)
			{
				saux=a[j]+a[k2]+a[i];
				if (saux==k&&ok1==0) 
				{
					g<<j<<' '<<k2<<' '<<i<<' ';
					ok1=1;
				}
				if (saux==z&&ok2==0) 
				{
					g<<j<<' '<<k2<<' '<<i<<' ';
					ok2=1;
				}
				if (ok1&&ok2)
					return;
			}
}


void sume3()
{
	int i,j,k,q=0,saux;
	for (j=1;j<=n;++j)
		for (k=1;k<=n;++k)
			for (i=1;i<=n;++i)
			{
				saux=a[j]+a[k]+a[i];
				viz[saux]=1;
				if (viz[S-saux])
				{		
					okg=1;
					scrie(saux,S-saux);
					return;
				}
			}
}

void citire ()
{
	int i;
	f>>n>>S;
	for (i=1;i<=n;f>>a[i++]);
}