aboutsummaryrefslogtreecommitdiff
path: root/03_dynamic_programming/dice_combinations_1633.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--03_dynamic_programming/dice_combinations_1633.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/03_dynamic_programming/dice_combinations_1633.cpp b/03_dynamic_programming/dice_combinations_1633.cpp
new file mode 100644
index 0000000..4e76d1d
--- /dev/null
+++ b/03_dynamic_programming/dice_combinations_1633.cpp
@@ -0,0 +1,19 @@
1#include <algorithm>
2#include <array>
3#include <iostream>
4
5// We use a funny memory optimization: we only store the last 7 values.
6
7int main() {
8 constexpr unsigned mod = 1e9+7;
9 int n;
10 std::cin >> n;
11 std::array<int, 7> v{0};
12 v[0] = 1;
13 for (int i = 1; i <= n; i++) {
14 v[i%7] = 0;
15 for (int j = std::max(0, i-6); j < i; j++)
16 v[i%7] = (v[i%7]+v[j%7]) % mod;
17 }
18 std::cout << v[n%7] << "\n";
19}

Generated with cgit - Back to sebastiano.tronto.net