https://cses.fi/paste/adf1b5540ddf073e6456ca/
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int N, X; cin >> N >> X; const int M = 1000000007; vector<int> coins(N); for (int i = 0;i < N;++i) cin >> coins[i]; vector<long long> dp(X + 1); dp[0] = 1; for (int i = 1;i < X + 1;++i) { for (int c : coins) { dp[i] += (i >= c) ? dp[i - c] % M: 0; } dp[i] = dp[i] % M; } cout << dp[X] << endl; }