Cod sursa(job #2154321)

Utilizator aurelionutAurel Popa aurelionut Data 6 martie 2018 21:04:40
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <vector>

using namespace std;

const int MOD = 777013;
const int DIM = 110;
int n, s;
int v[DIM];

struct sum
{
	int val, i, j, k;
	sum()
	{
		i = j = k = val = 0;
	}
	sum(int val, int i, int j, int k)
	{
		this->i = i;
		this->j = j;
		this->k = k;
		this->val = val;
	}
};

vector <sum> h[MOD];
ifstream fin("loto.in");
ofstream fout("loto.out");

void Read()
{
	fin >> n >> s;
	for (int i = 1;i <= n;++i)
		fin >> v[i];
	fin.close();
}

void Solve()
{
	int aux;
	for (int i = 1;i <= n;++i)
		for (int j = 1;j <= n;++j)
			for (int k = 1;k <= n;++k)
			{
				aux = v[i] + v[j] + v[k];
				h[aux % MOD].push_back(sum(aux, i, j, k));
			}
	int p;
	for (int i = 1;i <= n;++i)
		for (int j = 1;j <= n;++j)
			for (int k = 1;k <= n;++k)
			{
				aux = s - (v[i] + v[j] + v[k]);
				p = aux % MOD;
				for (int l = 0;l < h[p].size();++l)
				{
					if (aux == h[p][l].val)
					{
						fout << v[i] << " " << v[j] << " " << v[k] << " " << h[p][l].i << " " << h[p][l].j << " " << h[p][l].k << "\n";
						return;
					}

				}
			}
	fout << -1 << "\n";
}

int main()
{
	Read();
	Solve();
	return 0;
}