Pagini recente » Cod sursa (job #754745) | Cod sursa (job #977113) | Cod sursa (job #2986418) | Cod sursa (job #1932236) | Cod sursa (job #1436282)
# include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int k, st[101], as, ev, n;
/*
vi=1, vf=n, rel=1
*/
void init(int k, int st[])
{
st[k] = 0;
}
void succesor(int k, int st[], int &as)
{
if (st[k] < n)
{
as = 1;
st[k] = st[k] + 1;
}
else as = 0;
}
/*
Este valida?
*/
void valid(int k, int st[], int &ev)
{
ev = 1;
for(int i=1; i<k && ev; i++)
if (st[k] == st[i]) ev = 0;
}
// Cand avem solutie
int solutie(int k, int st[])
{
if ( k == n ) return 1;
else return 0;
}
void tipar(int k, int st[])
{
for(int i=1; i<=k; i++)
g << st[i] << " ";
g << endl;
}
void back(int k)//partea fixa
{
init(k, st);
while(k > 0)
{
do
{
succesor(k, st, as);
if (as) valid(k, st, ev);
}while(as && !ev);
if(as)
{
if(solutie(k,st)) tipar(k,st);
else
{
k++;
init(k, st);
}
}
else k--;
}
}
int main()
{
f >> n;
back(1);
return 0;
}