Cod sursa(job #2397340)
| Utilizator | Data | 4 aprilie 2019 12:19:51 | |
|---|---|---|---|
| Problema | Loto | Scor | 5 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.76 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,s,sol[7],v[200005];
int main()
{
f>>n>>s;
for(int i=1;i<=n;i++)
f>>v[i];
sort(v+1,v+n+1);
if(s<6*v[1]||s>6*v[n])
g<<-1;
else
{
int nr=6;
while(nr)
{
int x=s/nr;
if(s%nr) x++;
int st=1,dr=n;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij]<x) st=mij+1;
else dr=mij-1;
}
sol[nr]=v[st];
s-=v[st];
nr--;
}
for(int i=1;i<=6;i++)
g<<sol[i]<<" ";
g<<'\n';
}
return 0;
}
