Pagini recente » Cod sursa (job #1858099) | Cod sursa (job #1833972) | Cod sursa (job #2671763) | Cod sursa (job #2293899) | Cod sursa (job #2300725)
#include <bits/stdc++.h>
#include <fstream>
#include <vector>
#include <bitset>
#include <unordered_map>
#include <algorithm>
#include <queue>
#include <math.h>
#include <iomanip>
#include <stack>
#include <string.h>
#include <set>
using namespace std;
typedef long long ll;
ifstream in("perm2.in");
ofstream out("perm2.out");
vector <pair <long long, long long> > v[7];
int main()
{
long long n, s;
in >> n >> s;
for(int i = 1; i <= n; i++)
{
long long x;
in >> x;
v[1].push_back({x, 0});
}
for(int k = 2; k <= 6; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j < v[k - 1].size(); j++)
v[k].push_back({v[k - 1][j].first + v[1][i].first, i});
int k = 6;
bool is = false;
while(k > 1)
{
for(int i = 0; i < v[k].size(); i++)
if(v[k][i].first == s)
{
s -= v[1][v[k][i].second].first;
out << v[1][v[k][i].second].first << ' ';
is = true;
break;
}
if(is == false)
break;
k--;
}
if(is == true)
out << s;
else
out << -1;
}