Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- int max_saved(std::vector<int> prices, int k)
- {
- int money_to_be_saved = 0;
- std::sort(prices.begin(), prices.end());
- std::reverse(prices.begin(), prices.end());
- int max_size = prices.size() - ( prices.size() % k );
- while( max_size < prices.size() )
- prices.pop_back();
- for(int i = 0; i < prices.size(); i += k)
- money_to_be_saved += *std::min_element( (prices.begin()+i), (prices.begin()+i+k) );
- return money_to_be_saved;
- }
- int main()
- {
- int t, n, k, price;
- std::cin >> t;
- for(int i = 0; i < t; i++)
- {
- std::cin >> n >> k;
- std::vector<int> prices(n);
- for(int j = 0; j < n; j++)
- {
- std::cin>>price;
- prices[j] = price;
- }
- std::cout << max_saved(prices, k) << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement