Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define mp make_pair
  5. typedef long long int ll;
  6.  
  7. int n, r;
  8. vector<int> prices;
  9. int vis[1001][1001];
  10. int solve(int i, int k)
  11. {
  12.     k%= r;
  13.     if(k == 0)
  14.     return 0;
  15.     if(i >= n)
  16.     return 1e9;
  17.     if(vis[i][k])
  18.     return 1e9;
  19.     vis[i][k] = 1;
  20.     return min(solve(i+1, k), solve(i, k+prices[i])+prices[i]);
  21. }
  22.  
  23. int main()
  24. {
  25.     int t; cin >> t;
  26.     while(t--)
  27.     {
  28.         cin >> n >> r;
  29.         prices = vector<int>(n);
  30.         int answer = 0;
  31.         for(int i = 0; i < n; i++) {
  32.             cin >> prices[i];
  33.             answer += prices[i];
  34.         }
  35.  
  36.         answer += solve(0, answer%r);
  37.  
  38.         cout << answer;
  39.     }
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement