18242022-12-04 10:20:22sztomiJardaTcpp17Elfogadva 40/403ms4324 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ÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1812 KiB
2Elfogadva0/02ms2208 KiB
3Elfogadva1/12ms2324 KiB
4Elfogadva1/12ms2484 KiB
5Elfogadva2/22ms2624 KiB
6Elfogadva2/22ms2856 KiB
7Elfogadva3/32ms2972 KiB
8Elfogadva3/32ms3176 KiB
9Elfogadva3/32ms3424 KiB
10Elfogadva3/32ms3460 KiB
11Elfogadva3/32ms3656 KiB
12Elfogadva3/32ms3732 KiB
13Elfogadva3/32ms3724 KiB
14Elfogadva3/32ms3868 KiB
15Elfogadva3/32ms4012 KiB
16Elfogadva3/32ms4124 KiB
17Elfogadva4/42ms4324 KiB