Cod sursa(job #1067221)
Utilizator | Data | 26 decembrie 2013 16:02:41 | |
---|---|---|---|
Problema | Aria | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.92 kb |
#include <stdio.h>
using namespace std;
FILE*f=fopen("permutari.in","r");
FILE*g=fopen("permutari.out","w");
int ev,as,n,st[11],k,i;
int succ(int k)
{
if (st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
for (int i=1;i<k;i++)
{
if (st[i]==st[k]) return 0;
}
return 1;
}
int main()
{
fscanf(f,"%d",&n);
k=1; st[k]=0;
while (k>0)
{
do
{
as=succ(k);
if (as) ev=valid(k);
}while (as && !ev);
if (as)
{
if (k==n)
{
for (i=1;i<=n;i++)
{
fprintf(g,"%d ",st[i]);
}
fprintf(g,"\n");
}
else
{
k++;
st[k]=0;
}
}
else k--;
}
return 0;
}