7881 2024. 01. 11 17:51:55 adam Járda-L (40) cpp17 Hibás válasz 0/40 3ms 3852 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> dp;

int calculate (int n, int space) {
    if (n < 0)  return 0;
    else if (n == 0 && space == 0) return 1;


    if (dp[n][space] != -1) return dp[n][space];
    int answer = 0;
    if (space == 2) {
        answer += calculate(n, 0); // fektettett
    } else if (space == 1) {
        answer += calculate(n-1, 1); // fektetett
        answer += calculate(n-1, 0); // L
    }else if (space == 0) {
        answer += calculate(n - 1, 0); // allitott
        answer += calculate(n - 2, 2); // fektettett
        answer += calculate(n - 2, 1); // L
    }

    return dp[n][space] = answer;
}

int main() {
    int n;
    cin >> n;
    dp.assign(n+1, vector(3, -1));

    cout << calculate(n, 0) +1 << endl;
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 0/40
1 Elfogadva 0/0 3ms 1812 KiB
2 Hibás válasz 0/0 3ms 2052 KiB
3 Hibás válasz 0/2 3ms 2224 KiB
4 Hibás válasz 0/2 3ms 2468 KiB
5 Hibás válasz 0/2 3ms 2684 KiB
6 Hibás válasz 0/2 3ms 2868 KiB
7 Hibás válasz 0/2 2ms 2956 KiB
8 Hibás válasz 0/3 3ms 3092 KiB
9 Hibás válasz 0/3 3ms 3308 KiB
10 Hibás válasz 0/3 3ms 3528 KiB
11 Hibás válasz 0/3 3ms 3612 KiB
12 Hibás válasz 0/3 3ms 3620 KiB
13 Hibás válasz 0/3 3ms 3732 KiB
14 Hibás válasz 0/3 3ms 3836 KiB
15 Hibás válasz 0/3 3ms 3852 KiB
16 Hibás válasz 0/3 3ms 3752 KiB
17 Hibás válasz 0/3 3ms 3636 KiB