|
@@ -0,0 +1,50 @@
|
|
|
|
|
+/* 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;
|
|
|
|
|
+}
|