#include <iostream>
using namespace std;
inline bool valid(int a, int b) {
switch (a) {
case 0:
if (b == 0 || b == 2 || b== 4 || b == 5 || b == 10) {
return true;
}
else {
return false;
}
break;
case 1:
if (b == 1 || b == 8 || b == 7) {
return true;
}
else {
return false;
}
break;
case 2:
if (b == 3 || b == 4 || b == 6) {
return true;
}
else {
return false;
}
break;
case 3:
if (b == 8) {
return true;
}
else {
return false;
}
break;
case 4:
if (b == 4) {
return true;
}
}
}
void recurse(unsigned long long int p, int loc, int N, int* r, int * cache) {
if (loc == N) {
(*r) += p;
(*r) = (*r) % 20200111;
return;
}
if (cache[N - loc] != -1) {
(*r) += p * cache[N - loc];
(*r) = (*r) % 20200111;
return;
}
for (int i = 1; i <= N - loc; i++) {
unsigned long long int p2;
if (i == 1) {
p2 = 1;
}
else if (i == 2) {
p2 = 1;
}
else if (i == 3) {
p2 = 2;
}
else if (i == 4) {
p2 = 2;
}
else if (i >= 5) {
p2 = (i - 5) + 4;
}
recurse(p * p2, loc + i, N, r, cache);
}
}
int main()
{
int N; cin >> N;
int * cache = new int[N + 1];
fill(cache, cache + N + 1, -1);
for (int i = 1; i < N + 1; i++) {
int r = 0;
recurse(1, 0, i, &r, cache);
cache[i] = r;
}
cout << cache[N];
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 6/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1872 KiB | |||
2 | Hibás válasz | 0/0 | 2ms | 2124 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 2328 KiB | |||
4 | Elfogadva | 1/1 | 2ms | 2536 KiB | |||
5 | Elfogadva | 2/2 | 2ms | 2736 KiB | |||
6 | Elfogadva | 2/2 | 2ms | 2940 KiB | |||
7 | Hibás válasz | 0/3 | 2ms | 3084 KiB | |||
8 | Hibás válasz | 0/3 | 2ms | 3192 KiB | |||
9 | Hibás válasz | 0/3 | 2ms | 3420 KiB | |||
10 | Hibás válasz | 0/3 | 2ms | 3520 KiB | |||
11 | Hibás válasz | 0/3 | 2ms | 3596 KiB | |||
12 | Hibás válasz | 0/3 | 2ms | 3596 KiB | |||
13 | Hibás válasz | 0/3 | 2ms | 3472 KiB | |||
14 | Hibás válasz | 0/3 | 2ms | 3596 KiB | |||
15 | Hibás válasz | 0/3 | 2ms | 3672 KiB | |||
16 | Hibás válasz | 0/3 | 2ms | 3668 KiB | |||
17 | Hibás válasz | 0/4 | 2ms | 3916 KiB |