Nu aveti permisiuni pentru a descarca fisierul grader_test18.ok

Cod sursa(job #428569)

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

using namespace std;

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

//map <int,int> viz;
int viz[50];
int 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 (i=1;i<=n;++i)
		for (j=1;j<=n;++j)
			for (k2=1;k2<=n;++k2)
			{
				saux=a[j]+a[k2]+a[i];
				if (saux==k&&ok1==0) 
				{
					g<<a[j]<<' '<<a[k2]<<' '<<a[i]<<' ';
					ok1=1;
				}
				if (saux==z&&ok2==0) 
				{
					g<<a[j]<<' '<<a[k2]<<' '<<a[i]<<' ';
					ok2=1;
				}
				if (ok1&&ok2)
					return;
			}
}


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

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