| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* 2073. Time Needed to Buy Tickets */
- #include <iostream>
- #include <cstdint>
- #include <vector>
- using std::vector;
- class Solution {
- public:
- int timeRequiredToBuy(vector<int>& tickets, int k) {
- int time = 0;
- int i = 0;
- int limit = (int)tickets.size();
- while ( true ) {
- if ( i >= limit ) { i = 0; }
- int cur = tickets[i];
- if ( cur == 0 ) { ++i; continue; }
- --cur;
- ++time;
- if ( i == k && cur == 0 ) { return time; }
- tickets[i] = cur;
- ++i;
- }
- return time;
- }
- };
- void r(vector<int>& tickets, int k, int exp) {
- std::cout << "Solution().timeRequiredToBuy([";
- for ( uint64_t i = 0; i < tickets.size(); ++i ) {
- if ( i == 0 ) { std::cout << tickets[i]; continue; }
- std::cout << ", " << tickets[i];
- }
- std::cout << "], " << k << ") = " << Solution().timeRequiredToBuy(tickets, k) << " | exp: " << exp;
- std::cout << "\n";
- };
- int main(void) {
- vector<int> t1 = {2, 3, 2};
- r(t1, 2, 6);
- vector<int> t2 = {5, 1, 1, 1};
- r(t2, 0, 8);
- return 0;
- }
|