Pagini recente » Cod sursa (job #2441216) | Cod sursa (job #108019) | Cod sursa (job #2048099) | Cod sursa (job #2581798) | Cod sursa (job #361558)
Cod sursa(job #361558)
# include <fstream>
using namespace std;
long long int n, s, v[105], x[10], sum, pp;
ofstream fout ("loto.out");
void citire ()
{
int i;
ifstream fin ("loto.in");
fin>>n>>s;
for (i=1;i<=n;i++)
fin>>v[i];
}
void afis ()
{
int i;
for (i=1;i<=6;i++)
fout<<x[i]<<" ";
}
void bk (int k)
{
int i;
for (i=1;i<=n && k<=6 && pp==0;i++)
{
x[k]=v[i];
sum += v[i];
if (sum<=s)
{
if (sum==s && k==6)
afis (), pp=1;
else
if (k<6 && sum<s)
bk(k+1);
}
sum-=v[i];
}
}
void sort ()
{
int i, gata, cpt, capat;
long long aux;
gata=0;
capat=n;
while (!gata)
{
gata=1;
cpt=capat;
for (i=1;i<cpt;i++)
if (v[i]<v[i+1])
{
aux=v[i], v[i]=v[i+1], v[i+1]=aux;
gata=0;
capat=i;
}
}
}
void qsort (int st, int dr)
{
if (st<dr)
{
int i=st, j=dr, d=0;
long long aux;
while (i<j)
{
if (v[i]<v[j])
{
aux=v[i], v[i]=v[i+1], v[i+1]=aux;
d=1-d;
}
i+=d;
j-=1-d;
}
qsort (st, i-1);
qsort (i+1, dr);
}
}
int main ()
{
citire ();
qsort (1, n);
bk (1);
if (pp==0)
fout<<"-1";
return 0;
}