Cod sursa(job #2894675)

Utilizator AlexePaulAlexe Paul AlexePaul Data 28 aprilie 2022 01:10:18
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <bits/stdc++.h>

#define FILE "loto"

using namespace std;

ifstream fin(FILE".in");
ofstream fout(FILE".out");

struct data{
	int value;
	int nr1, nr2, nr3;
};
int n,s;
map<int,data> umap;
int numbers[105];

int main(){
	ios::sync_with_stdio(false);
	fin >> n;
	fin >> s;
	for(int i = 0; i < n; ++i)
		fin >> numbers[i];
	for(int i = 0; i < n; ++i)
		for (int j = i; j < n; ++j)
			for (int k = j; k < n; ++k){
				if(umap[numbers[i]+numbers[j]+numbers[k]].value == 0){
					umap[numbers[i]+numbers[j]+numbers[k]].value++;
					umap[numbers[i]+numbers[j]+numbers[k]].nr1 = numbers[i];
					umap[numbers[i]+numbers[j]+numbers[k]].nr2 = numbers[j];
					umap[numbers[i]+numbers[j]+numbers[k]].nr3 = numbers[k];
				}
			}
	for(int i = 0; i < n; ++i)
		for (int j = i; j < n; ++j)
			for (int k = j; k < n; ++k){
				if(umap[s - (numbers[i]+numbers[j]+numbers[k])].value != 0){
					fout << umap[s - (numbers[i]+numbers[j]+numbers[k])].nr1 << ' ' 
					<< umap[s - (numbers[i]+numbers[j]+numbers[k])].nr2 <<' ' 
					<< umap[s - (numbers[i]+numbers[j]+numbers[k])].nr3 << ' ' 
					<< numbers[i] << ' ' << numbers[j] << ' ' << numbers[k];
					return 0;
				}
	}
	fout << -1;
	return 0;
}