Pagini recente » Cod sursa (job #2865699) | Cod sursa (job #2334618) | Cod sursa (job #403919) | Cod sursa (job #1207546) | Cod sursa (job #1336885)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <sstream>
#include <deque>
#include <bitset>
#include <complex>
#include <functional>
#include <memory>
#include <numeric>
#define x first
#define y second
typedef std::pair<int, int> pii;
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s, x[102], y[102], z[102];
__int64 sum = 0, goose = 0;
__int64 suma = 0;
void back1(int k, int n)
{
if(k == n)
{
suma = 0;
for(int i = 0; i < n; i++)
{
suma += x[z[i]];
}
if(suma == s)
{
for(int i = 0; i < n; i++)
{
if(x[z[i]] == 0)
{
fout << "-1";
exit(0);
}
}
for(int i = 0; i < n; i++)
{
fout << x[z[i]] << " ";
}
exit(0);
}
}
else
for(int i = 0; i < n; i++)
{
z[k] = i;
back1(k + 1, n);
}
}
void back(int k)
{
__int64 sul = 0;
if(k == 6)
{
for(int i = 0; i < 6; i++)
sul += x[y[i]];
if(sul == s)
{
for(int i = 0; i < 6; i++)
if(x[y[i]] == 0)
{
fout << "-1";
exit(0);
}
for(int i = 0; i < 6; i++)
fout << x[y[i]] << " ";
exit(0);
}
}
else
for(int i = 0; i < 6; i++)
{
y[k] = i;
back(k + 1);
}
}
int main () {
fin >> n >> s;
for(int i = 0; i < n; i++)
{
fin >> x[i];
sum += x[i];
}
sort(x, x + n);
if(x[n - 1] * 6 < s || x[0] * 6 > s)
{
fout << "-1";
exit(0);
}
if(n < 6)
{
back(0);
fout << "-1";
exit(0);
}
else
{
back1(0, n);
cout << "-1";
exit(0);
}
return 0;
}