Pagini recente » Cod sursa (job #2856422) | Cod sursa (job #3137535) | Cod sursa (job #2766131) | Cod sursa (job #85269) | Cod sursa (job #429025)
Cod sursa(job #429025)
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int s[100],n;
long nr;
void init(int k)
{s[k]=0;}
int succesor(int k)
{if(s[k]<n){s[k]++;
return 1;}
return 0;}
int valid(int k)
{int ok=0;
int ok1=1;
for(int i=1;i<k;i++)
{if(s[k]==s[i])ok1=0;
if(s[i]>k)ok=1;}
if(ok1==1){if(ok==1||k==n||s[k]>k)return 1;
return 2;}
if(ok==0&&k!=n&&s[k]<=k)return 2;
return 0;}
void begin(int k)
{init(k);
while(succesor(k)){if(valid(k)==1){if(k==n){nr++;
if(nr==997)nr=0;
}
else begin(k+1);
}
else if(valid(k)==2)s[k]=k;
}
}
int main()
{fin>>n;
nr=0;
init(1);
begin(1);
fout<<nr;
return 0;
}