Pagini recente » Cod sursa (job #2245318) | Cod sursa (job #929324) | Cod sursa (job #2050865) | Cod sursa (job #2368937) | Cod sursa (job #234913)
Cod sursa(job #234913)
#include<stdio.h>
int as,x[9*9],viz[9*9],n;
bool ev;
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
int k=1;
int nrviz=0;
while (k)
{
do
{
if (x[k]<n)
{
viz[x[k]]--;
x[k]++;
viz[x[k]]++;
as=1;
nrviz=0;
for (int i=1; i<=n; ++i)
if (viz[i])
nrviz++;
ev=(nrviz+n-k>=n);
}
else as=0;
}
while (as&&!ev);
if (as)
if (k==n)
{
for (int i=1; i<=n; ++i)
printf("%d ",x[i]);
printf("\n");
}
else
x[++k]=0;
else
{
viz[x[k]]--; --k;
}
}
return 0;
}