Pagini recente » Cod sursa (job #1852292) | Cod sursa (job #1055548) | Cod sursa (job #2316148) | Cod sursa (job #3038625) | Cod sursa (job #792024)
Cod sursa(job #792024)
//
// main.cpp
// a1
//
// Created by abc on 9/20/12.
// Copyright (c) 2012 abc. All rights reserved.
//
# include <iostream>
# include <cstdio>
# include <cstdlib>
# include <iomanip>
# include <cmath>
# include <map>
# include <vector>
# include <set>
using namespace std;
# define ISALPHA(Q) (('a' <= Q && Q <= 'z') || ('A' <= Q && Q <= 'Z'))
# define ISDIGIT(a) ('0' <= a && a <= '9')
# define TODIGIT(a) (a - '0')
typedef unsigned char U8;
typedef long long LONG;
void init()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
}
template <typename T> void read(vector<T> &vec)
{
for(int i=0; i<vec.size(); ++i) {
cin >> vec[i];
}
}
int sol[6];
bool rec(int n, int s, const vector<int> &vec, int p)
{
if (n == 0) {
return (s == 0);
}
else {
bool found = false;
for(int i=p; !found && i<vec.size() && s - vec[i] >= 0; ++i)
{
sol[6-n] = vec[i];
found |= rec(n-1, s - vec[i], vec, i);
}
return found;
}
}
int main(int argc, const char * argv[])
{
init();
int N, S; cin >> N >> S;
vector<int> vec(N); read(vec);
sort(vec.rbegin(), vec.rend());
if (rec(6, S, vec, 0)) {
for(int i=0; i<6; ++i) {
cout << sol[i] << " ";
}
}
else {
cout << -1;
}
return 0;
}