Pagini recente » Cod sursa (job #25980) | Cod sursa (job #2567444) | Cod sursa (job #51507) | Cod sursa (job #2259096) | Cod sursa (job #2592993)
#include <bits/stdc++.h>
#define NMAX (int)(104)
#define MOD 666013
#define all(x) x.begin(),x.end()
#define rep(i, l, r) for(int i = l; i < r; ++i)
#define rev(i, r, l) for(int i = r - 1; i >= l; --i)
#define ft first
#define sd second
#define pb push_back
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,v[NMAX],s,id;
pair <int, pii> sum[NMAX*NMAX*NMAX];
struct hashTable{
int find(int x){
int temp=x;
x=x%MOD;
for(auto it:H[x])
if(it.ft == temp)
return it.sd;
return -1;
}
void insert(int x, int id){
int temp=x;
x=x%MOD;
for(auto it:H[x])
if(it.ft == temp)
return;
H[x].pb({temp, id});
}
vector <pii> H[MOD];
};
hashTable H;
int main(){
fin>>n>>s;
rep(i, 0, n)
fin>>v[i];
rep(i, 0, n)
rep(j, 0, n)
rep(k, 0, n){
int t=v[i]+v[j]+v[k];
if(t > s) continue;
sum[id]={i, {j, k}};
H.insert(t, id);
++id;
int x=H.find(s-t);
if(x >= 0){
fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<' '<<
v[sum[x].ft]<<' '<<v[sum[x].sd.ft]<<' '<<v[sum[x].sd.sd]<<'\n';
return 0;
}
}
fout<<-1;
return 0;
}