Pagini recente » Cod sursa (job #283017) | Cod sursa (job #32169) | Cod sursa (job #1041636) | Cod sursa (job #456894) | Cod sursa (job #979134)
Cod sursa(job #979134)
#include <cstdio>
#include <cassert>
using namespace std;
const int MOD = (1 << 20) - 1;
int N, Solution;
void Solve() {
int DP[4] = {1, 2, 6, 12};
if (N <= 4) {
Solution = DP[N - 1];
return;
}
for (int n = 5; n <= N; ++n) {
DP[0] = DP[1];
DP[1] = DP[2];
DP[2] = DP[3];
DP[3] = (DP[2] + DP[0] + 2 * (n - 2)) & MOD;
}
Solution = DP[3];
}
void Read() {
assert(freopen("12perm.in", "r", stdin));
assert(scanf("%d", &N) == 1);
}
void Print() {
assert(freopen("12perm.out", "w", stdout));
printf("%d\n", Solution);
}
int main() {
Read();
Solve();
Print();
return 0;
}