Dynamic Programming - A2

public
yeskendir.sultanov Mar 31, 2024 Never 61
Clone
C++ A2dp.cpp 31 lines (27 loc) | 561 Bytes
1
#include <bits/stdc++.h>
2
#define ll long long
3
4
using namespace std;
5
6
ll dp[51];
7
bool calced[51];
8
9
ll calc(int n) {
10
if (n < 0) {
11
return 0;
12
} else if (n == 0) {
13
return 1;
14
} else if (calced[n]) {
15
return dp[n];
16
} else {
17
dp[n] = calc(n - 1) + calc(n - 2) + calc(n - 3);
18
calced[n] = true;
19
return dp[n];
20
}
21
}
22
23
int main() {
24
std::ios_base::sync_with_stdio(false);
25
cin.tie(0);
26
cout.tie(0);
27
int n;
28
cin >> n;
29
cout << calc(n);
30
return 0;
31
}