Cod sursa(job #1165411)

Utilizator andreismara97Smarandoiu Andrei andreismara97 Data 2 aprilie 2014 17:50:25
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int v[105],n,sum,rez[10];

void citire()
{
    int i;
    in>>n>>sum;
    for(i=1;i<=n;i++)
        in>>v[i];

    sort(v+1,v+n+1); //sortarea elementelor
}

int main ()
{
    citire();
    int j;
    int div=1<<28,i=0;
    long long suma=0,minsuma;
    if(n<=6)
        minsuma=n*v[1];
    else
        minsuma=6*v[1];
    for(int j=1;j<=6;j++)
    {
        div=1<<4;
        i=0;
        if(n>6-j)
            minsuma-=v[1];
        while(div)
        {
            if(i+div<=n && v[i+div]+suma<=sum-minsuma)
                i+=div;
            div/=2;
        }
        suma+=v[i];
        rez[j]=v[i];
    }
    if(suma!=sum)
        out<<-1<<'\n';
    else
        for(i=1;i<=6;i++)
            out<<rez[i]<<' ';
    return 0;
}