Pagini recente » Cod sursa (job #2001602) | Cod sursa (job #960831) | Cod sursa (job #1097588) | Cod sursa (job #595942) | Cod sursa (job #70012)
Cod sursa(job #70012)
#include<fstream.h>
long a[110],T,x;
ofstream fout("loto.out");
short n;
void citire(){
ifstream fin("loto.in");
fin>>n>>T;
for (short i=0;i<n;i++)
fin>>a[i];
fin.close();
}
void bule(){
short ok=0,p=n;
while(ok==0){
ok=1;
p--;
for (short i=0;i<p;i++)
if (a[i]>a[i+1]){
long aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
ok=0;}
}
}
int caut(long x){
int st=0,dr=n-1,m;
while (st<dr){
m=(st+dr)/2;
if (a[m]==x)
return 1;
else
if (a[m]<x)
st=m+1;
else dr=m-1;}
return 0;
}
int parc(){
long S,nr=0,nr1=0,nr2,nr3;
double T1=T;
double ww=T1/6;
if (T/6==ww) {
for (int i=0;i<n;i++)
if (a[i]==ww){
for (int tt=0;tt<6;tt++)
fout<<a[i]<<" ";
return 1;}
}
for (int pp=n-1;pp>=0;pp--)
if (a[pp]*6>T)
nr++;
for (int pu=0;pu<n;pu++)
if (a[pu]*6<T)
nr2++;
for (int yy=0;yy<n;yy++)
if (a[yy]*5+a[nr2-1]<T)
nr3++;
for (int qq=n-1;qq>=0;qq--)
if (a[qq]*5+a[n-1-nr]>T)
nr1++;
for (short i=n-1-nr;i>=nr2-1;i--)
for (short j=n-1-nr1;j>=0;j--)
for (short k=n-1;k>=0;k--)
for (short l=n-1;l>=0;l--)
for (short o=n-1;o>=nr3-1;o--)
if (caut(T-a[i]-a[j]-a[k]-a[l]-a[o])==1){
fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[l]<<" "<<a[o]<<" "<<T-a[i]-a[j]-a[k]-a[l]-a[o]<<"\n";
return 1;}
return 0;
}
int main(){
citire();
bule();
if (parc()==0)
fout<<"-1";
return 0;
}