@@ -197,7 +197,9 @@ int main() {
197
197
}
198
198
199
199
// find "crosses"
200
- while ((int )stck .size () > 1 && max_point (stck [(int )stck .size () - 2 ], stck .back ()) > max_point (stck .back (), cur )) {
200
+ while ((int )stck .size () > 1 &&
201
+ max_point (stck [(int )stck .size () - 2 ], stck .back ()) >
202
+ max_point (stck .back (), cur )) {
201
203
stck .pop_back ();
202
204
}
203
205
@@ -209,20 +211,25 @@ int main() {
209
211
stck .pop_front ();
210
212
}
211
213
212
- while ((int )stck .size () > 1 && max_point (stck [(int )stck .size () - 2 ], stck .back ()) > l ) {
214
+ while ((int )stck .size () > 1 &&
215
+ max_point (stck [(int )stck .size () - 2 ], stck .back ()) > l ) {
213
216
stck .pop_back ();
214
217
}
215
218
216
219
double ans = 0 ;
217
220
for (int x = 0 ; x < (int )stck .size (); x ++) {
218
- // get critical points stck[x] is in charge of
221
+ // get critical points stck[x] is in charge of
219
222
Point left = {0 , 0 };
220
- Point right {l, 0 };
223
+ Point right {l, 0 };
221
224
222
225
if (x ) { left .x = max_point (stck [x ], stck [x - 1 ]); }
223
- if (x < (int )stck.size() - 1) { right .x = max_point (stck [x ], stck [x + 1 ]); }
224
-
225
- if (left.x < 0 || right.x > l || right.x < 0 || left.x > l ) { continue ; }
226
+ if (x < (int )stck.size() - 1) {
227
+ right .x = max_point (stck [x ], stck [x + 1 ]);
228
+ }
229
+
230
+ if (left.x < 0 || right.x > l || right.x < 0 || left.x > l ) {
231
+ continue ;
232
+ }
226
233
227
234
ans = max ({ans , dist(stck [x ], left ), dist(stck [x ], right )});
228
235
}
0 commit comments