Cod sursa(job #1881503)

Utilizator GinguIonutGinguIonut GinguIonut Data 16 februarie 2017 15:50:50
Problema 12-Perm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

ifstream fin("12perm.in");
ofstream fout("12perm.out");

int n;

int main()
{
    fin>>n;
    if(n==1)
    {
        fout<<1;
        return 0;
    }
    if(n==2)
    {
        fout<<2;
        return 0;
    }
    if(n==3)
    {
        fout<<6;
        return 0;
    }
    if(n==4)
    {
        fout<<12;
        return 0;
    }
    int curr0=12, curr1=6, curr2=2, curr3=1;
    int MOD=(1 << 20)-1;
    for(int i=5; i<=n; i++)
    {
        curr3=curr2;
        curr2=curr1;
        curr1=curr0;
        curr0=curr1+curr3+2*(i-2);
        curr0&=MOD;
    }
    fout<<curr0;
}