Pagini recente » Cod sursa (job #1291940) | Cod sursa (job #452447) | Cod sursa (job #2330238) | Cod sursa (job #2556934) | Cod sursa (job #555041)
Cod sursa(job #555041)
#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;
}