2073.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* 2073. Time Needed to Buy Tickets */
  2. #include <iostream>
  3. #include <cstdint>
  4. #include <vector>
  5. using std::vector;
  6. class Solution {
  7. public:
  8. int timeRequiredToBuy(vector<int>& tickets, int k) {
  9. int time = 0;
  10. int i = 0;
  11. int limit = (int)tickets.size();
  12. while ( true ) {
  13. if ( i >= limit ) { i = 0; }
  14. int cur = tickets[i];
  15. if ( cur == 0 ) { ++i; continue; }
  16. --cur;
  17. ++time;
  18. if ( i == k && cur == 0 ) { return time; }
  19. tickets[i] = cur;
  20. ++i;
  21. }
  22. return time;
  23. }
  24. };
  25. void r(vector<int>& tickets, int k, int exp) {
  26. std::cout << "Solution().timeRequiredToBuy([";
  27. for ( uint64_t i = 0; i < tickets.size(); ++i ) {
  28. if ( i == 0 ) { std::cout << tickets[i]; continue; }
  29. std::cout << ", " << tickets[i];
  30. }
  31. std::cout << "], " << k << ") = " << Solution().timeRequiredToBuy(tickets, k) << " | exp: " << exp;
  32. std::cout << "\n";
  33. };
  34. int main(void) {
  35. vector<int> t1 = {2, 3, 2};
  36. r(t1, 2, 6);
  37. vector<int> t2 = {5, 1, 1, 1};
  38. r(t2, 0, 8);
  39. return 0;
  40. }