Pagini recente » Cod sursa (job #806112) | Cod sursa (job #3250231) | Cod sursa (job #2191089) | Cod sursa (job #3022917) | Cod sursa (job #2233776)
#include <bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct pz{
int x, y, z, val;
};
const int md=666013;
int n, suma, x[101];
vector<pz>hatz[md+1];
vector<pz>::iterator verif(int val2){
vector<pz>::iterator iter;
int poz=val2%md;
for(iter=hatz[poz].begin(); iter!=hatz[poz].end(); ++iter)
if(iter->val==val2) return iter;
return hatz[poz].end();
}
void adc(int val, int x, int y, int z){
int poz=val%md;
hatz[poz].push_back({x, y, z, val});
}
int main()
{
f>>n>>suma;
for(int i=1; i<=n; ++i) f>>x[i];
for(int i=1; i<=n; ++i){
for(int j=i; j<=n; ++j){
for(int k=j; k<=n; ++k){
int val=x[i]+x[j]+x[k];
adc(val, i, j, k);
}
}
}
for(int i=1; i<=n; ++i){
for(int j=i; j<=n; ++j){
for(int k=j; k<=n; ++k){
int val=suma-x[i]-x[j]-x[k];
if(val>0){
vector<pz>::iterator iter=verif(val);
if(iter!=hatz[val%md].end())
{
g<<x[iter->x]<<" "<<x[iter->y]<<" "<<x[iter->z]<<" "<<x[i]<<" "<<x[j]<<" "<<x[k]<<"\n";
return 0;
}
}
}
}
}
g<<-1<<"\n";
return 0;
}