Pagini recente » Cod sursa (job #1239489) | Cod sursa (job #890564) | Cod sursa (job #1835591) | Cod sursa (job #1961855) | Cod sursa (job #2920866)
//Nu cred ca-i solutia optima, dar ne descurcam cu ce avem
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("loto.in");
ofstream cout ("loto.out");
int n,v[101],S,st,dr,s;
int main()
{
cin>>n>>S;
for (int i=1; i<=n; ++i) cin>>v[i];
sort(v+1,v+n+1);
for (int i=1; i<=n; ++i)
for (int j=1; j<=n; ++j)
for (int k=1; k<=n; ++k)
for (int l=1; l<=n; ++l)
for (int m=1; m<=n; ++m)
for (int o=1; o<=n; ++o)
{
st=1,dr=n;
s=v[i]+v[j]+v[k]+v[l]+v[m];
while (st<=dr){
int mij=(st+dr)/2;
if (s+v[mij]==S) {cout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[l]<<" "<<v[m]<<" "<<v[mij];return 0;}
else if (s+v[mij]<S) st=mij+1;
else dr=mij-1;
}
}
cout<<-1;
return 0;
}