Pagini recente » Cod sursa (job #3193778) | Cod sursa (job #2818743) | Cod sursa (job #1977022) | Cod sursa (job #259106) | Cod sursa (job #498168)
Cod sursa(job #498168)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
struct suma
{
int x, y, z, s;
bool operator<(const suma &x)
{
return s < x.s;
}
};
void loto()
{
ifstream in("loto.in");
ofstream out("loto.out");
int N, S;
in >> N >> S;
vector<int > a(N + 1);
vector<suma> v(1);
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++)
{
suma n;
n.x = i;
n.y = j;
n.z = k;
n.s = a[i] + a[j] + a[k];
v.push_back(n);
}
}
}
sort(v.begin() + 1, v.end());
int p = 1, u = (int) v.size() - 1;
int poz1 = 0, poz2 = 0;
while (p <= u)
{
int x = v[p].s + v[u].s;
if (x == S)
{
poz1 = p;
poz2 = u;
break;
}
else if (x > S)
u--;
else
p++;
}
if (poz2)
out << a[v[poz1].x] << ' '
<< a[v[poz1].y] << ' '
<< a[v[poz1].z] << ' '
<< a[v[poz2].x] << ' '
<< a[v[poz2].y] << ' '
<< a[v[poz2].z];
else
out << -1;
}
int main()
{
loto();
}