Cod sursa(job #3163787)

Utilizator ViAlexVisan Alexandru ViAlex Data 1 noiembrie 2023 09:23:37
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<iostream>
#include<fstream>
#include<set>
#include<unordered_map>
#include<vector>
using namespace std;

ifstream in("loto.in");
ofstream out("loto.out");

struct Sum{
	int x,y,z;
};


int s,n;
vector<int> values;

void read(){
	in>>n>>s;
	values.resize(n);
	for(int i=0;i<n;i++){
		in>>values[i];
	}
}

void solve(){
	unordered_map<int, Sum> m;

	for(int x: values){
		for(int y:values){
			for(int z:values){
				int sum = x+y+z;	
				m[sum] = Sum{x,y,z};
			}
		}
	}

	for(auto iter = m.begin(); iter!=m.end(); iter++){
		int current_sum = iter->first;
		int need = s - current_sum;

		auto other = m.find(need);
		if(other != m.end()){
			out<<iter->second.x<<" "<<iter->second.y<<" "<<iter->second.z<<" ";
			out<<other->second.x<<" "<<other->second.y<<" "<<other->second.z;
			return;
		}
	}
	out<<-1;
}


int main(){
	read();
	solve();
	return 0;
}