// C++ Program for the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to calculate the total
// number of ways to have sum N
void findWays(int N)
{
// Initialize dp array
int dp[N + 1];
dp[0] = 1;
// Iterate over all the possible
// intermediate values to reach N
for (int i = 1; i <= N; i++) {
dp[i] = 0;
// Calculate the sum for
// all 6 faces
for (int j = 1; j <= 6; j++) {
if (i - j >= 0) {
dp[i] = dp[i] + dp[i - j];
}
}
}
// Print the total number of ways
cout << dp[N];
}
// Driver Code
int main()
{
// Given sum N
int N = 500;
// Function call
findWays(N);
return 0;
}
Ly8gQysrIFByb2dyYW0gZm9yIHRoZSBhYm92ZSBhcHByb2FjaAoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBGdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIHRvdGFsCi8vIG51bWJlciBvZiB3YXlzIHRvIGhhdmUgc3VtIE4Kdm9pZCBmaW5kV2F5cyhpbnQgTikKewoJLy8gSW5pdGlhbGl6ZSBkcCBhcnJheQoJaW50IGRwW04gKyAxXTsKCglkcFswXSA9IDE7CgoJLy8gSXRlcmF0ZSBvdmVyIGFsbCB0aGUgcG9zc2libGUKCS8vIGludGVybWVkaWF0ZSB2YWx1ZXMgdG8gcmVhY2ggTgoJZm9yIChpbnQgaSA9IDE7IGkgPD0gTjsgaSsrKSB7CgoJCWRwW2ldID0gMDsKCgkJLy8gQ2FsY3VsYXRlIHRoZSBzdW0gZm9yCgkJLy8gYWxsIDYgZmFjZXMKCQlmb3IgKGludCBqID0gMTsgaiA8PSA2OyBqKyspIHsKCgkJCWlmIChpIC0gaiA+PSAwKSB7CgkJCQlkcFtpXSA9IGRwW2ldICsgZHBbaSAtIGpdOwoJCQl9CgkJfQoJfQoKCS8vIFByaW50IHRoZSB0b3RhbCBudW1iZXIgb2Ygd2F5cwoJY291dCA8PCBkcFtOXTsKfQoKLy8gRHJpdmVyIENvZGUKaW50IG1haW4oKQp7CgkvLyBHaXZlbiBzdW0gTgoJaW50IE4gPSA1MDA7CgoJLy8gRnVuY3Rpb24gY2FsbAoJZmluZFdheXMoTik7CgoJcmV0dXJuIDA7Cn0K