Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define mp make_pair
- typedef long long int ll;
- int n, r;
- vector<int> prices;
- int vis[1001][1001];
- int solve(int i, int k)
- {
- k%= r;
- if(k == 0)
- return 0;
- if(i >= n)
- return 1e9;
- if(vis[i][k])
- return 1e9;
- vis[i][k] = 1;
- return min(solve(i+1, k), solve(i, k+prices[i])+prices[i]);
- }
- int main()
- {
- int t; cin >> t;
- while(t--)
- {
- cin >> n >> r;
- prices = vector<int>(n);
- int answer = 0;
- for(int i = 0; i < n; i++) {
- cin >> prices[i];
- answer += prices[i];
- }
- answer += solve(0, answer%r);
- cout << answer;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement