Pagini recente » Cod sursa (job #1971552) | Cod sursa (job #2730169) | Cod sursa (job #108312) | Cod sursa (job #1736735) | Cod sursa (job #508068)
Cod sursa(job #508068)
// un back de cateva puncte... 30-40 tot e bun
#include <fstream>
#define nmax 105
#define mmax 6
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, S, suma, ok = 1;
int sol[nmax], v[nmax];
void afis();
void back(int k);
void back(int k)
{
if(k == mmax+1 && ok)
if(suma == S && ok)
{
afis();
ok = 0;
}
else;
else
for(int i=n; i>=1 && ok; --i)
{
sol[k] = v[i];
if(suma + sol[k] <= S)
{
suma = suma + sol[k];
back(k+1);
suma = suma - sol[k];
sol[k] = 0;
}
}
}
void afis()
{
int i;
fout << suma << "\n";
for(i=1; i<=mmax; ++i)
fout << sol[i] << " ";
fout << "\n";
// fout << "-1\n";
}
int main()
{
int i;
fin >> n >> S;
for(i=1; i<=n; ++i)
fin >> v[i];
sort(v+1, v+n+1);
back(1);
// afis();
return 0;
}