Advertisement
Ankit_132

D

Jan 10th, 2024
1,244
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. #define ll     long long
  7. #define _test   int _TEST; cin>>_TEST; while(_TEST--)
  8.  
  9. int main()
  10. {
  11.     _test
  12.     {
  13.         int n, x, z;
  14.         cin>>n>>x>>z;
  15.  
  16.         vector<int> a(n);
  17.         for(auto &e: a)
  18.             cin>>e;
  19.  
  20.         if(z%x == 0)
  21.         {
  22.             cout<<z/x<<"\n";
  23.             continue;
  24.         }
  25.  
  26.         int rem = x - z%x;
  27.  
  28.         vector<ll int> mmin1(x+1, 1e18);
  29.         vector<ll int> mmin2(x+1, 1e18);
  30.         mmin1[0] = 0;
  31.        
  32.         for(auto e: a)
  33.         {
  34.             for(int i=0; i<x; i++)
  35.                 mmin2[(i+e)%x] = min(mmin2[(i+e)%x], mmin1[i]+e);
  36.  
  37.             for(int i=0; i<x; i++)
  38.                 mmin1[i] = min(mmin1[i], mmin2[i]);
  39.  
  40.             fill(mmin2.begin(), mmin2.end(), 1e18);
  41.         }
  42.  
  43.         if(mmin1[rem] == 1e18)
  44.             cout<<"-1\n";
  45.         else
  46.             cout<<(z+mmin1[rem])/x<<"\n";
  47.     }
  48. }
  49.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement