fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int combinationalSum(vector<long long>&nums, long long target){
  5. long long dp[target+1];
  6. int n = nums.size();
  7. dp[0]=1;
  8. for(long long i=0; i<n; i++){
  9. for(long long j=nums[i]; j<=target; j++){
  10. dp[j] +=dp[j-nums[i]];
  11. }
  12. }
  13. return dp[target];
  14. }
  15. int main() {
  16. long long n,target;
  17. cin>>n>>target;
  18. vector<long long>nums(n);
  19. for(long long i=0;i<n;i++){
  20. cin>>nums[i];
  21. }
  22. cout<<combinationalSum(nums,target)<<endl;
  23.  
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 4560KB
stdin
3 4
1 2 3
stdout
-1490482345