aboutsummaryrefslogtreecommitdiff
path: root/underground_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'underground_system.cpp')
-rw-r--r--underground_system.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/underground_system.cpp b/underground_system.cpp
new file mode 100644
index 0000000..fd4fbbf
--- /dev/null
+++ b/underground_system.cpp
@@ -0,0 +1,24 @@
+#include "leetcode.h"
+
+class UndergroundSystem {
+public:
+ unordered_map<int, pair<string, int>> checkIns;
+ unordered_map<string, pair<int, int>> routes;
+ UndergroundSystem() {}
+ void checkIn(int id, string stationName, int t) {
+ checkIns[id] = {stationName, t};
+ }
+ void checkOut(int id, string stationName, int t) {
+ auto [stn, start] = checkIns[id];
+ checkIns.erase(id);
+ string route = stn + "," + stationName;
+ routes[route].first++;
+ routes[route].second += t - start;
+ }
+ double getAverageTime(string startStation, string endStation) {
+ auto &[count, sum] = routes[startStation + "," + endStation];
+ return (double)sum / count;
+ }
+};
+
+int main() {}