Pagini recente » Cod sursa (job #101069) | Cod sursa (job #1585339) | Cod sursa (job #3237683) | Cod sursa (job #1231015) | Cod sursa (job #2297956)
#include <fstream>
#include <vector>
#include <iostream>
#define N 100003
#define pb push_back
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct Nums{
int a, b, c;
Nums(int a, int b, int c){
this->a = a;
this->b = b;
this->c = c;
}
};
int n, S;
vector<Nums> sums[N];
vector<int> elems;
void add_sum(int s, Nums nums){
sums[s % N].pb(nums);
}
Nums is_sum(int s){
if(!sums[s%N].empty()){
return sums[s%N].front();
}
else{
return {-1, -1, -1};
}
}
void read_data(){
in >> n >> S;
for(int i = 0; i<n; i++){
int x;
in >> x;
elems.pb(x);
}
}
void solve(){
for(int i = 0; i< elems.size(); i++){
for(int j = 0; j<elems.size(); j++){
for(int k = 0; k<elems.size(); k++){
add_sum(elems[i] + elems[j] + elems[k], {elems[i], elems[j], elems[k]});
}
}
}
for(int i = 0; i< elems.size(); i++){
for(int j = 0; j<elems.size(); j++){
for(int k = 0; k<elems.size(); k++){
auto num = is_sum(S - (elems[i] + elems[j] + elems[k]));
if(num.a > 0){
out << num.a << ' ' << num.b << ' ' << num.c << ' ' << elems[i] << ' ' << elems[j] << ' ' << elems[k];
return;
}
}
}
}
out << -1;
}
int main(){
read_data();
solve();
return 0;
}