diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2026-07-06 19:08:08 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2026-07-06 19:08:08 +0200 |
| commit | 96254947699986c59f0dc63d69fd4b76bd3ed43e (patch) | |
| tree | 6c4dca945d7f7427c48be234d827fe4d33be02c5 /03_dynamic_programming/dice_combinations_1633.cpp | |
| download | cses-96254947699986c59f0dc63d69fd4b76bd3ed43e.tar.gz cses-96254947699986c59f0dc63d69fd4b76bd3ed43e.zip | |
Initial commit
Diffstat (limited to '')
| -rw-r--r-- | 03_dynamic_programming/dice_combinations_1633.cpp | 19 |
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 | |||
| 7 | int 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 | } | ||
