Pagini recente » Cod sursa (job #105522) | Cod sursa (job #2920830) | Cod sursa (job #2050281) | Cod sursa (job #1982112) | Cod sursa (job #446822)
Cod sursa(job #446822)
# include <fstream>
# include <iostream>
# include <set>
# include <vector>
# include <algorithm>
# define pb push_back
using namespace std;
struct nod{
int a, b, c, s;
nod (){}
nod (int A, int B, int C, int S){
a=A;b=B;c=C;s=S;}
friend bool operator < (const nod &a, const nod &b){
return a.s<b.s;
};
};
int n, s, rez, v[10];
vector<int>V;
vector<nod>S;
void read ()
{
int x;
ifstream fin ("loto.in");
fin>>n>>s;
for(int i=1;i<=n;i++)
{
fin>>x;
V.pb(x);
}
}
void solve ()
{
vector<nod>::iterator it;
for(int i=0;i<n;++i)
for(int j=i;j<n;++j)
for(int k=j;k<n;++k)
S.pb(nod(V[i], V[j], V[k], V[i]+V[j]+V[k]));
sort(S.begin(), S.end());
for(vector<nod>::iterator I=S.begin();I!=S.end() && !rez;++I)
{
it=lower_bound(S.begin(), S.end(), nod(0, 0, 0, s-I->s));
if (it->s==s-I->s)
{
rez=1;
v[1]=it->a;v[2]=it->b;v[3]=it->c;v[4]=I->a;v[5]=I->b;v[6]=I->c;
}
}
}
int main()
{
read();
solve ();
ofstream fout ("loto.out");
if (rez)
for(int i=1;i<=6;i++)fout<<v[i]<<" ";
else
fout<<"-1";
return 0;
}