Cod sursa(job #926979)

Utilizator DEYDEY2Tudorica Andrei DEYDEY2 Data 25 martie 2013 15:04:08
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#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;
}