Pagini recente » Cod sursa (job #887504) | Cod sursa (job #2135033) | Cod sursa (job #2591872) | Cod sursa (job #963872) | Cod sursa (job #479639)
Cod sursa(job #479639)
using namespace std;
#include<iostream>
#include<fstream>
#include<cstring>
int viz[100],N,sum,T[10000000];
ofstream fout("12perm.out");
void back(int k,int last)
{
if(k>N)
sum++;//
else
{if(viz[last-1]==0&&last-1<=N&&last-1>=1)
{ viz[last-1]=1;
back(k+1,last-1);
viz[last-1]=0;
}
if(viz[last+1]==0&&last+1<=N&&last+1>=1)
{ viz[last+1]=1;
back(k+1,last+1);
viz[last+1]=0;
}
if(viz[last+2]==0&&last+2<=N&&last+2>=1)
{ viz[last+2]=1;
back(k+1,last+2);
viz[last+2]=0;
}
if(viz[last-2]==0&&last-2<=N&&last-2>=1)
{ viz[last-2]=1;
back(k+1,last-2);
viz[last-2]=0;
}
}
}
void solve()
{int i;
T[1]=1;
T[2]=2;
T[3]=6;
T[4]=12;
for(i=5;i<=N;i++)
T[i]=(T[i-1]+T[i-3]+2*(i-2))&((1<<20)-1);
}
void cit()
{
ifstream fin("12perm.in");
fin>>N;
fin.close();
}
int main()
{int i;
cit();
sum=0;
solve();
/*for( i=1;i<=N;i++)
{ for(int j=1;j<=N;j++)
viz[j]=0;
viz[i]=1;
//cout<<i<<"\n ";
back(2,i);
//viz[i]=0;
}*/
fout<<T[N];
fout.close();
return 0;
}