Cod sursa(job #1142661)

Utilizator andreiagAndrei Galusca andreiag Data 14 martie 2014 00:42:56
Problema 12-Perm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>

using namespace std;
const int mask = (1 << 20) - 1;
const int Nmax = 15000005;

int F[Nmax];

int main()
{
    ifstream f ("12perm.in");
    ofstream g ("12perm.out");

    int N;
    f >> N;
    // F[0] ???
    F[1] = F[2] = 1;
    F[3] = 2;
    for (int n = 4; n <= N; n++) {
        F[n] = (F[n-1] + F[n-3] + 1) & mask;
    }
    int ans = (2*F[N]) & mask;
    for (int i = 1; i < N/2; i++) {
        ans = (ans + 2*(F[N - 2*i - 1] + F[N - 2*i])) & mask;
    }
    if (N%2 == 1)
        ans = (ans + 2) & mask;

    g << ans << endl;

    return 0;
}