Cod sursa(job #2583235)
Utilizator | Ivan Tudor ivan.tudor | Data | 17 martie 2020 22:22:11 |
---|---|---|---|
Problema | 12-Perm | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<bits/stdc++.h>
using namespace std;
FILE*fin,*fout;
int main()
{
fin=fopen("12perm.in","r");
fout=fopen("12perm.out","w");
int n;
fscanf(fin,"%d",&n);
if(n==1){
fprintf(fout,"1");
return 0;
}
if(n==2){
fprintf(fout,"2");
return 0;
}
if(n==3){
fprintf(fout,"6");
return 0;
}
else if(n==4){
fprintf(fout,"12");
return 0;
}
int z1=12,z2=6,z3=2;
for(int i=5;i<=n;i++){
int zinou=(z1+z3+2*(i-2))&((1<<20)-1);
z3=z2;
z2=z1;
z1=zinou;
}
fprintf(fout,"%d",z1);
return 0;
}