Pagini recente » Cod sursa (job #1463142) | Cod sursa (job #2127922) | Cod sursa (job #2759444) | Cod sursa (job #1302635) | Cod sursa (job #555894)
Cod sursa(job #555894)
#include <fstream>
#define nmax 18
using namespace std;
ifstream f("submultimi.in");
ofstream g("submultimi.out");
int s[nmax],uz[nmax],n;
void citire ()
{
f>>n;
f.close ();
}
void afisare (int k)
{
for (int i=1; i<=k; i++)
g<<s[i]<<" ";
g<<'\n';
}
bool verif (int k, int i)
{
if (uz[i]) return false;
if (i<s[k-1] && k-1>=1) //elementul de pus (i) e mai mic ca cel anterior din stiva
return false ;
return true;
}
void back (int k)
{
if (k-2==n) return;
if (k>=2) afisare (k-1);
for (int i=1; i<=n; i++)
if (verif(k,i))
{
uz[i]=1;
s[k]=i;
back (k+1);
uz[i]=0;
}
}
int main ()
{
citire ();
back (1);
g.close (); return 0;
}