Cod sursa(job #2533809)
| Utilizator | Data | 29 ianuarie 2020 18:49:50 | |
|---|---|---|---|
| Problema | 12-Perm | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <algorithm>
#define mod 1048576
using namespace std;
ifstream cin("12perm.in");
ofstream cout("12perm.out");
int v[15000005];
int main()
{
int n,cnt=0;
cin>>n;
if(n>=42)
{
cout<<0;
return 0;
}
for(int i=1;i<=n;++i)
v[i]=i;
do
{
bool ok=0;
for(int i=2;i<=n and ok==0;++i)
if(v[i]-v[i-1]<-2 or v[i]-v[i-1]>2)
ok=1;
cnt+=1-ok;
cnt%=mod;
}while(next_permutation(v+1,v+n+1));
cout<<cnt;
return 0;
}
