Pagini recente » Cod sursa (job #1681851) | Monitorul de evaluare | Istoria paginii utilizator/razvitim | Cod sursa (job #1400766) | Cod sursa (job #2590469)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
const int N = 100, M = 666019;
int a[N];
vector <int> v[N * N * N];
struct trei {
int a, b, c, sum;
}sume3[N * N * N];
void adauga(int nr)
{
int categ = (sume3[nr].sum) % M;
v[categ].push_back(nr);
}
int main()
{
int n, s, nr = 0;
in >> n >> s;
for(int i = 1; i <= n; i++)
in >> a[i];
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
for(int k = 1; k <= n; k++)
{
sume3[++nr] = {a[i], a[j], a[k], a[i]+a[j]+a[k]};
adauga(nr);
}
}
}
for(int i = 1; i <= nr; i++)
{
if(v[(s - sume3[i].sum) % M].size() > 0)
{
int j = (s - sume3[i].sum) % M;
for(int k = 0; k < v[j].size(); k++)
{
if(sume3[i].sum + sume3[v[j][k]].sum == s)
{
out << sume3[i].a << " " << sume3[i].b << " "
<< sume3[i].c << " " << sume3[v[j][k]].a << " " << sume3[v[j][k]].b << " " << sume3[v[j][k]].c;
return 0;
}
}
}
}
out << -1;
return 0;
}