Pagini recente » Cod sursa (job #1057882) | Cod sursa (job #967542) | Cod sursa (job #1596076) | Cod sursa (job #1635544) | Cod sursa (job #2950740)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
#define cin fin
#define cout fout
#define N 105
#define power 73
#define mod 666013
#define oo 0x3f3f3f3f
struct pereche
{
int i, j, t, s;
};
vector < vector < pereche > > s;
int n, p, r, v[N];
int exista(int suma)
{
int a = suma%mod;
for(auto T : s[a])
{
if(T.s == suma)return 0;
}
return 1;
}
int main()
{
cin >> n >> p;
s.resize(mod);
for(int i = 1 ; i <= n ; i++)
{
cin >> v[i];
}
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= n ; j++)
{
for(int t = 1 ; t <= n ; t++)
{
if(exista(v[i]+v[j]+v[t]))
{
r = (v[i]+v[j]+v[t])%mod;
pereche p = {i,j,t,v[i]+v[j]+v[t]};
s[r].push_back(p);
}
}
}
}
for(int i = 1 ; i <= n ; i++)
{
for(int j = 1 ; j <= n ; j++)
{
for(int t = 1 ; t <= n ; t++)
{
if(p >= (v[i]+v[j]+v[t]))
{
int k = p-(v[i]+v[j]+v[t]);
r = k%mod;
for(auto T : s[r])
{
if(T.s == k)
{
cout << v[i] << " " << v[j] << " " << v[t] << " ";
cout << v[T.i] << " " << v[T.j] << " " << v[T.t] << " ";
return 0;
}
}
}
}
}
}
cout << -1;
return 0;
}