Cod sursa(job #1725046)

Utilizator danstefanDamian Dan Stefan danstefan Data 4 iulie 2016 19:40:51
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
int n,s,i,v[110],in,sf,mid,r,x,y[10];
bool ok;
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d%d",&n,&s);
    for(i=1; i<=n; ++i)
        scanf("%d",&v[i]);
    sort(v+1,v+n+1);
    for(i=6; i>=1; --i)
    {
        if(s%i!=0)r=1;
        else r=0;
        x=s/i+r;
        in=1;
        sf=n;
        ok=false;
        while(in<=sf)
        {
            mid=(in+sf)/2;
            if(x==v[mid])
            {
                s-=v[mid];
                y[i]=v[mid];
                ok=true;
                break;
            }
            else if(x<v[mid])sf=mid-1;
            else in=mid+1;
        }
        if(!ok)s-=v[in],y[i]=v[in];
    }
    if(s!=0)printf("%d\n",-1);
    else for(i=1; i<=6; ++i)printf("%d ",y[i]);
    return 0;
}