Cod sursa(job #2325800)

Utilizator shantih1Alex S Hill shantih1 Data 22 ianuarie 2019 22:21:16
Problema Loto Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");

int n,s,i,j,l,nr,md=666013;
int v[105];
struct per
{	int s,t1,t2,t3;	} z;
vector<per> H[666013];

void adaug(int s,int t1,int t2,int t3)
{
	int id=s%md,ok=1;
	for(auto i:H[id])
		if(i.s==s)	ok=0;
	if(ok)	H[id].push_back({s,t1,t2,t3});
}
per vezi(int s)
{
	int id=s%md;
	for(auto i:H[id])
		if(i.s==s)
			return i;
	return {0,0,0,0};
}

int main() {
	
	fin>>n>>s;
	for(i=1;i<=n;i++)
		fin>>v[i];
	
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			for(l=1;l<=n;l++)
				adaug(v[i]+v[j]+v[l], v[i], v[j], v[l]);
	
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			for(l=1;l<=n;l++)
			{
				nr=v[i]+v[j]+v[l];
				if(vezi(s-nr).s)
				{
					z=vezi(s-nr);
					fout<<v[i]<<" "<<v[j]<<" "<<v[l]<<" "<<z.t1<<" "<<z.t2<<" "<<z.t3<<"\n";
					return 0;
				}
			}
	fout<<-1<<"\n";
}