Advertisement
Guest User

Равенство, перебор

a guest
Jan 18th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. vector < int > x;
  9.  
  10. int solve(int idx, long long sum) {
  11.     if (idx == 0 && sum == 0) {
  12.         return 1;
  13.     }
  14.     if (idx == 0) {
  15.         return 0;
  16.     }
  17.     long long res = 1;
  18.     int cnt = 0;
  19.     for (int i = idx - 1; i >= 0; --i) {
  20.         res *= x[i];
  21.         if (sum >= res) {
  22.             cnt += solve(i, sum - res);
  23.         } else {
  24.             break;
  25.         }
  26.     }
  27.     return cnt;
  28. }
  29. int main() {
  30.     int n, sum;
  31.     cin >> n >> sum;
  32.     x.resize(n);
  33.     for (int i = 0; i < n; ++i) {
  34.         cin >> x[i];
  35.     }
  36.     cout << solve(x.size(), sum);
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement