Dynamic Programming - A

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