Pagini recente » Cod sursa (job #495083) | Cod sursa (job #1059398) | Cod sursa (job #256293) | Cod sursa (job #427490) | Cod sursa (job #518804)
Cod sursa(job #518804)
#include <fstream>
#include <vector>
#include <algorithm>
#define INF 102
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct S {
int nr1, nr2, nr3, sum;
}a[INF*INF*INF];
int s, b[INF];
bool Calc(S a, S b);
int main()
{
fstream fin("loto.in");
ofstream fout("loto.out");
int i, j, k , k1, k2, n;
fin >> n >> s;
for (int i = 1; i <= n; ++i)
fin >> b[i];
//fin.close();
int c = 1;
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
for (k = 1; k <= n; ++k)
{
a[c].nr1 = b[i];
a[c].nr2 = b[j];
a[c].nr3 = b[k];
a[c].sum = b[i] + b[j] + b[k];
c++;
}
sort(a, a + c, Calc);
int st = 1, dr = c - 1;
while (st <= dr)
{
if (a[st].sum + a[dr].sum == s)
{
fout << a[st].nr1 << ' ' << a[st].nr2 << ' ' << a[st].nr3 << ' ' << a[dr].nr1 << ' ' << a[dr].nr2 << ' ' << a[dr].nr3;
//fout.close();
return 0;
}
while (a[st].sum + a[dr].sum > s)
--dr;
if (a[st].sum + a[dr].sum == s)
{
fout << a[st].nr1 << ' ' << a[st].nr2 << ' ' << a[st].nr3 << ' ' << a[dr].nr1 << ' ' << a[dr].nr2 << ' ' << a[dr].nr3;
//fout.close();
return 0;
}
++st;
}
fout << "-1" << '\n';
//fout.close();
return 0;
}
bool Calc (S a, S b)
{
return a.sum < b.sum;
}