Explorar el Código

Adding solution for 2073

Vinicius Teshima hace 1 mes
padre
commit
f97a87626a
Se han modificado 1 ficheros con 50 adiciones y 0 borrados
  1. 50 0
      C++/2073.cpp

+ 50 - 0
C++/2073.cpp

@@ -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;
+}