#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 |