Cod sursa(job #217762)

Utilizator mashekMasek Vlad mashek Data 30 octombrie 2008 09:59:00
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb

#include <stdio.h>
int st[10],i,k,n;
int valid ()
{
	if (k==1 || st[k]>st[k-1]) return 1;
	return 0;
}
 int succesor ()
 {
void bkt();
void init(int k);
int succesor(int k);
int valid(int k);
void tipar();
int solutie(int k);

int main()
{
  freopen("permutari.in", "r", stdin);
  freopen("permutari.out", "w", stdout);
  scanf("%d", &n);
  bkt();
  return 0;
}

void bkt()
{
  int k=0;
  init(k);
  while (k>=0)
  {
    if (succesor(k))
    {
      if (valid(k))
      {
	if (solutie(k))
	  tipar();
	else
	{
	  k++;
	  init(k);
	}
      }
    else
      k--;
  }


void init(int k)
{
  st[k]=0;
}

int succesor(int k)
{
  if (st[k]<n)
  {
    st[k]++;
    return 1;
  }
  else
    return 0;
}