Pagini recente » Cod sursa (job #876191) | Cod sursa (job #2471824) | Cod sursa (job #2026138) | Cod sursa (job #2328019) | Cod sursa (job #926979)
Cod sursa(job #926979)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,s,x[101],i,j,sum,sol[100000001],m;
int cb()
{
int st,dr,med,last=-1;
st=1;dr=n;
while(st<=dr)
{
med=(st+dr)/2;
if(s-sum>=x[med])
{
last=med;
st=med+1;
}
else dr=med-1;
}
return last;
}
int main()
{
f>>n>>s;
for(i=1;i<=n;i++) f>>x[i];
sort(x+1,x+n+1);
while(sum<s)
{
sol[++m]=x[cb()];
sum+=sol[m];
}
if(sum==s) for(i=m;i>=1;i--) g<<sol[i]<<' ';
else g<<-1;
g<<'\n';
f.close();
g.close();
return 0;
}