Pagini recente » Cod sursa (job #68420) | Cod sursa (job #3230202) | Cod sursa (job #159590) | Cod sursa (job #237686) | Cod sursa (job #2887735)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
const int p = 666013;
struct triplet{
int pr, sc, tr;
} sume_trei[p + 2];
int main()
{
int v[100];
triplet t;
long long s;
int n, ok = 0, i, j, k, m;
ifstream f("loto.in");
ofstream g("loto.out");
f >> n >> s;
for(i = 0; i < n; i++)
f >> v[i];
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
for(int k = j; k < n; k++)
{
t.pr = v[i]; t.sc = v[j]; t.tr = v[k];
sume_trei[(v[i] + v[j] + v[k]) % p] = t;
}
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
for(int k = j; k < n; k++)
if(sume_trei[(s - v[i] - v[j] - v[k]) % p].pr)
{
if(v[i] + v[j] + v[k] + sume_trei[s - v[i] - v[j] - v[k]].pr + sume_trei[s - v[i] - v[j] - v[k]].sc + sume_trei[s - v[i] - v[j] - v[k]].tr == s)
g << v[i] << ' ' << v[j] << ' ' << v[k] << ' ' << sume_trei[s - v[i] - v[j] - v[k]].pr << ' ' << sume_trei[s - v[i] - v[j] - v[k]].sc << ' ' << sume_trei[s - v[i] - v[j] - v[k]].tr;
return 0;
}
g << -1;
return 0;
}