fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int minSteps(vector<int> piles) {
  7.  
  8. int steps = 0;
  9.  
  10. while (true) {
  11.  
  12. int tallest = *max_element(piles.begin(), piles.end());
  13.  
  14. int secondTallest = -1;
  15.  
  16. for (int h : piles) {
  17. if (h < tallest)
  18. secondTallest = max(secondTallest, h);
  19. }
  20.  
  21. if (secondTallest == -1)
  22. break;
  23.  
  24. for (int i = 0; i < piles.size(); i++) {
  25. if (piles[i] == tallest) {
  26. piles[i] = secondTallest;
  27. steps++;
  28. break;
  29. }
  30. }
  31. }
  32.  
  33. return steps;
  34. }
  35.  
  36. int main() {
  37.  
  38. vector<int> piles = {5,5,2,1};
  39.  
  40. cout << minSteps(piles);
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
5