Pagini recente » Cod sursa (job #407951) | Cod sursa (job #2495298) | Cod sursa (job #126499) | Cod sursa (job #310538) | Cod sursa (job #2031769)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int n, s, s_verif, p, OK, VERIF, e = 1;
int v[110], a[10], q[110];
void backtracking (int k)
{
if (OK == 0)
{
if (k == 7)
{
e = 1;
s_verif = 0;
for (int i = 1; i <= 6; i++)
{
s_verif = s_verif + a[i];
q[a[i]] = 1;
}
for (int i = 1; i <= n; i++)
{
if (q[v[i]] == 0)
{
e = 0;
break;
}
q[v[i]] = 0;
}
if(s_verif == s && e == 1)
{
VERIF = 1;
for (int i = 1; i <= 6; i++)
out << a[i] << ' ';
OK = 1;
}
if (s_verif > s)
OK = 1;
}
else
{
for (int i = 1; i <= p; i++)
{
a[k] = v[i];
backtracking(k + 1);
}
}
}
}
int main()
{
in >> n >> s;
for (int i = 1; i <= n; i++)
{
in >> v[i];
if (v[i] <= s - 5)
v[++p] = v[i];
}
sort (v + 1, v + p + 1);
backtracking (1);
if (VERIF == 0)
out << -1;
return 0;
}