Cod sursa(job #2823825)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 29 decembrie 2021 20:39:49
Problema 12-Perm Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

inline void Open(const string Name) {
    #ifndef ONLINE_JUDGE
        (void)!freopen((Name + ".in").c_str(), "r", stdin);
        (void)!freopen((Name + ".out").c_str(), "w", stdout);
    #endif
}

int dp[6];
int N;

int add_(int a, int b) {
    a = (a + b) & 1048575;
    return a;
}

void solve() {
    cin >> N;

    dp[1] = 1, dp[2] = 2, dp[3] = 6, dp[4] = 12;
    for(int i = 5;i <= N;i++) {
        dp[5] = add_(add_(dp[4], dp[2]), (2 * (i - 2)) & 1048575);
        dp[1] = dp[2], dp[2] = dp[3], dp[3] = dp[4], dp[4] = dp[5];
    }

    cout << dp[min(N, 4)];
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    //Open("12perm");

    int T = 1;
    for(;T;T--) {
        solve();
    }

    return 0;
}