Pagini recente » Cod sursa (job #483586) | Monitorul de evaluare | Cod sursa (job #949508) | Cod sursa (job #349650) | Cod sursa (job #857788)
Cod sursa(job #857788)
//Solutie 2
#include<vector>
#include<fstream>
using namespace std;
ifstream f("loto.in"); ofstream g("loto.out");
const int MOD = 200003;
const int NMAX = 1000009;
int n, s, c[NMAX];
struct nod
{
int s;
int x;
int y;
int z;
} el;
vector<nod> v[NMAX];
int main()
{
f>>n>>s;
for(int i = 1; i <= n; ++i) f>>c[i];
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
for(int k = j; k <= n; ++k)
{
if(c[i] + c[j] + c[k] <= s)
{
el.s = c[i] + c[j] + c[k], el.x = c[i], el.y = c[j], el.z = c[k];
v[el.s % MOD].push_back(el);
int s1 = s - c[i] - c[j] - c[k];
vector<nod> :: iterator it;
int x = s1 % MOD;
for(int q = 0; q < v[x].size(); ++q)
if(v[x][q].s == s1)
{
g<<c[i]<<' '<<c[j]<<' '<<c[k]<<' '<<v[x][q].x<<' '<<v[x][q].y<<' '<<v[x][q].z<<'\n';
g.close();
return 0;
}
}
}
g<<-1<<'\n';
g.close();
return 0;
}