78812024-01-11 17:51:55adamJárda-L (40)cpp17Hibás válasz 0/403ms3852 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ÖsszpontTesztVerdiktIdőMemória
base0/40
1Elfogadva0/03ms1812 KiB
2Hibás válasz0/03ms2052 KiB
3Hibás válasz0/23ms2224 KiB
4Hibás válasz0/23ms2468 KiB
5Hibás válasz0/23ms2684 KiB
6Hibás válasz0/23ms2868 KiB
7Hibás válasz0/22ms2956 KiB
8Hibás válasz0/33ms3092 KiB
9Hibás válasz0/33ms3308 KiB
10Hibás válasz0/33ms3528 KiB
11Hibás válasz0/33ms3612 KiB
12Hibás válasz0/33ms3620 KiB
13Hibás válasz0/33ms3732 KiB
14Hibás válasz0/33ms3836 KiB
15Hibás válasz0/33ms3852 KiB
16Hibás válasz0/33ms3752 KiB
17Hibás válasz0/33ms3636 KiB