Cod sursa(job #1790872)

Utilizator c0mradec0mrade c0mrade Data 28 octombrie 2016 20:05:00
Problema 12-Perm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("12perm.in");
ofstream fout("12perm.out");

const int mask = (1 << 20) - 1;
int n;

int main()
{
    fin >> n;

    int d1 = 2;
    int d2 = 6;
    int d3 = 12;

    if(n == 1){fout<<"1"; return 0;};
    if(n == 2){fout<<d1; return 0;};
    if(n == 3){fout<<d2; return 0;};
    if(n == 4){fout<<d3; return 0;};
    for(int i = 5; i <= n; ++i)
    {
        int d = d1 + d3 + 2 * (i - 2);
        d &= mask;
        d1 = d2;
        d2 = d3;
        d3 = d;
    }

    fout << d3 << '\n';

    return 0;
}