Pagini recente » Cod sursa (job #1241338) | Cod sursa (job #2294066) | Cod sursa (job #1423648) | Cod sursa (job #2512032) | Cod sursa (job #1974225)
#include <bits/stdc++.h>
#define prime_n 1024
#define Nmax 102
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int n,S,v[Nmax];
vector<int> vo[prime_n+1];
void inserth(int q){
vo[q%prime_n].push_back(q);
}
int nr(int q){
int sum=0;
int t=max(q%prime_n,0);
for (vector<int> :: iterator it = vo[t].begin(); it != vo[t].end(); ++it)
if(*it==q)return 1;
return 0;
}
int main()
{
int sum=-1;
fin>>n>>S;
for(int i=1;i<=n;++i)
fin>>v[i];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
inserth(v[i]+v[j]+v[k]);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k){
int w=S-v[i]-v[j]-v[k];
if(nr(w)){
sum=w;
fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<' ';
i=j=k=1000;
}
}
if(sum==-1)fout<<-1<<endl;
else{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
if(v[i]+v[j]+v[k]==sum){fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<'\n';return 0;}
}
return 0;
}