Cod sursa(job #555041)

Utilizator acelasi7Tudor Maxim acelasi7 Data 15 martie 2011 11:21:22
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
using namespace std;
#define nrn 105

int V[nrn],n,k,SOL[nrn];

FILE *in=fopen("loto.in","r"),*out=fopen("loto.out","w");

int bun(int pas,int val)
{
    if(6-pas)
        return val/(6-pas);
    return 1;
}
void cbin(int pas)
{
    int lf=1,rt=n,mid,M=-1;
    while(lf<=rt)
    {
        mid=(rt+lf)/2;
        if(V[mid]<=k&&V[mid]>M)
        {
            if(pas<6&&!bun(pas,k-V[mid]))
            {
                rt=mid-1;
                continue;
            }
            M=V[mid];
            lf=mid+1;
        }
        else
        {
            if(V[mid]>k||!bun(pas,k-V[mid]))
            rt=mid-1;
        }
    }
    k-=M;
    SOL[pas]=M;
}
int main()
{
    int i;
    fscanf(in,"%d %d",&n,&k);
    for(i=1;i<=n;++i)
        fscanf(in,"%d",&V[i]);
    for(i=1;i<=6;++i)
        cbin(i);
    if(!k)
        for(i=1;i<=6;++i)
            fprintf(out,"%d ",SOL[i]);
    else fprintf(out,"-1 ");
    return 0;
}