Cod sursa(job #2300725)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 11 decembrie 2018 21:39:30
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#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;
	
}