Cod sursa(job #2484845)

Utilizator CharacterMeCharacter Me CharacterMe Data 31 octombrie 2019 18:08:59
Problema 12-Perm Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
#define MOD (1<<20)-1
typedef long long ll;
ll n, i, j, aux;
ll sol[4];
int main()
{
    freopen("12perm.in", "r", stdin);
    freopen("12perm.out", "w", stdout);
    scanf("%lld", &n);
    if(n==1) {printf("1"); return 0;}
    if(n==2) {printf("2"); return 0;}
    if(n==3) {printf("6"); return 0;}
    sol[0]=1; sol[1]=2; sol[2]=6; sol[3]=12;
    for(i=5; i<=n; ++i){
        aux=sol[3];
        sol[3]=(sol[1]+sol[3]+2*(i-2))&MOD;
        sol[1]=sol[2]; sol[2]=aux;
    }
    printf("%lld", sol[3]);
    fclose(stdin);
    fclose(stdout);
    return 0;
}