1824 2022. 12. 04 10:20:22 sztomi JardaT cpp17 Elfogadva 40/40 3ms 4324 KiB
#include <bits/stdc++.h>

using namespace std;

const long long mod = 20200111;
vector<vector<long long>> dp;

int megold(int n, int kilog){
    if(n < 0){
        return 0;
    }
    if(n < kilog){
        return 0;
    }
    if(n == 0){
        return 1;
    }

    if(dp[n][kilog] != -1){
        return dp[n][kilog];
    }
    long long ki = 0;
    if(kilog == 0){
        // L betu mindket fele forditva
        ki += megold(n-1, 1) * 2;
        // I betu allitva
        ki += megold(n-1, 0);
        // 2*I betu fektetve
        ki += megold(n-2, 0);
    }
    else{
        // L betu
        ki += megold(n-2, 0);
        // I betu fektetve
        ki += megold(n-1, 1);
        // T betu
        ki += megold(n-2, 1);
    }
    ki %= mod;
    dp[n][kilog] = ki;
    return ki;
}

int main()
{
    int n;
    cin >> n;
    dp.assign(n+1, vector<long long>(2, -1));
    cout << megold(n, 0) << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 2ms 2208 KiB
3 Elfogadva 1/1 2ms 2324 KiB
4 Elfogadva 1/1 2ms 2484 KiB
5 Elfogadva 2/2 2ms 2624 KiB
6 Elfogadva 2/2 2ms 2856 KiB
7 Elfogadva 3/3 2ms 2972 KiB
8 Elfogadva 3/3 2ms 3176 KiB
9 Elfogadva 3/3 2ms 3424 KiB
10 Elfogadva 3/3 2ms 3460 KiB
11 Elfogadva 3/3 2ms 3656 KiB
12 Elfogadva 3/3 2ms 3732 KiB
13 Elfogadva 3/3 2ms 3724 KiB
14 Elfogadva 3/3 2ms 3868 KiB
15 Elfogadva 3/3 2ms 4012 KiB
16 Elfogadva 3/3 2ms 4124 KiB
17 Elfogadva 4/4 2ms 4324 KiB