Pagini recente » Cod sursa (job #1194195) | Cod sursa (job #1240272) | Cod sursa (job #2865715) | Cod sursa (job #557280) | Cod sursa (job #2430020)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
const int DIM = 107;
const int DIM2 = 1e6 + 7;
int t[DIM];
struct Suma
{
int sum, f1, f2, f3;
};
Suma v[DIM2];
bool cmp(Suma a, Suma b)
{
return a.sum < b.sum;
}
int main()
{
int n, s;
in >> n >> s;
for(int i = 1; i <= n; i++)
{
in >> t[i];
}
int n2 = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
{
int sum = t[i] + t[j] + t[k];
n2++;
v[n2].sum = sum;
v[n2].f1 = t[i];
v[n2].f2 = t[j];
v[n2].f3 = t[k];
}
sort(v + 1, v + 1 + n2, cmp);
for(int i = 1; i <= n2; i++)
{
int p = s - v[i].sum;
int l = i;
int r = n2;
while(l <= r)
{
int mid = (l + r) / 2;
if(v[mid].sum > p)
{
r = mid - 1;
}
else
if(v[mid].sum < p)
{
l = mid + 1;
}
else
{
out << v[i].f1 << ' ' << v[i].f2 << ' ' << v[i].f3 << ' ' << v[mid].f1 << ' ' << v[mid].f2 << ' ' << v[mid].f3 << '\n';
return 0;
}
}
}
out << -1;
}