Skip to content

Commit 9797471

Browse files
authored
Update 2532.Time-to-Cross-a-Bridge.cpp
1 parent 4cb8335 commit 9797471

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

Simulation/2532.Time-to-Cross-a-Bridge/2532.Time-to-Cross-a-Bridge.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,19 @@ class Solution {
1313
priority_queue<PII>rightWait;
1414

1515
int ret = 0;
16-
int count = 0;
17-
int taken = 0;
16+
int crossed = 0;
17+
int returned = 0;
1818

19-
while (count < n)
19+
while (returned < n)
2020
{
21+
if (crossed == n)
22+
{
23+
while (!leftWait.empty())
24+
leftWait.pop();
25+
while (!leftArrive.empty())
26+
leftArrive.pop();
27+
}
28+
2129
while (!leftArrive.empty() && leftArrive.top().first <= nextFree)
2230
{
2331
auto [arriveTime, id] = leftArrive.top();
@@ -44,25 +52,17 @@ class Solution {
4452
auto [_, id] = rightWait.top();
4553
rightWait.pop();
4654
nextFree += time[id][2];
47-
leftArrive.push({nextFree+time[id][3], id});
48-
49-
count++;
55+
leftArrive.push({nextFree+time[id][3], id});
56+
returned++;
5057
ret = max(ret, nextFree);
5158
}
52-
else if (!leftWait.empty()) // L -> R
59+
else if (!leftWait.empty() && crossed < n) // L -> R
5360
{
54-
if (taken == n)
55-
{
56-
while (!leftWait.empty())
57-
leftWait.pop();
58-
} else
59-
{
60-
auto [_, id] = leftWait.top();
61-
leftWait.pop();
62-
nextFree += time[id][0];
63-
rightArrive.push({nextFree+time[id][1], id});
64-
taken++;
65-
}
61+
auto [_, id] = leftWait.top();
62+
leftWait.pop();
63+
nextFree += time[id][0];
64+
rightArrive.push({nextFree+time[id][1], id});
65+
crossed++;
6666
}
6767
}
6868

0 commit comments

Comments
 (0)