Cod sursa(job #1451079)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 15 iunie 2015 23:12:15
Problema 12-Perm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#define MOD (1<<20)
using namespace std;

int A, B, C, D, E, N;

int main(){

    freopen("12perm.in" ,"r", stdin );
    freopen("12perm.out","w", stdout);

    scanf("%d", &N);

    A = 1; B = 2; C = 6, D = 12;

    if(N <= 3){
        switch(N)
        {
            case 1:{printf("%d", A); break;}
            case 2:{printf("%d", B); break;}
            case 3:{printf("%d", C); break;}
            case 4:{printf("%d", D); break;}
        }
    } else {
        A = 2; B = 6; C = 12;
        for(int i = 5; i <= N; i ++){
            D = (A + C + 2 * (i - 2)) % MOD;
            A = B; B = C; C = D;
        }
    }

    printf("%d", D);

    return 0;
}