2206 2023. 01. 02 22:16:51 TuruTamas JardaT cpp11 Hibás válasz 6/40 3ms 3916 KiB
#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