https://cses.fi/paste/ea7be550e17f258fb775bb/
#include <iostream> #include <vector> 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 coin : coins) { for (int i = coin;i < x + 1;++i) { dp[i] = (dp[i] + dp[i - coin]) % M; } } cout << dp[x] << endl; }