| # | User | Rating |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 143 |
| 5 | Um_nik | 142 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 134 |
| 9 | maroonrk | 133 |
| 10 | qwexd | 130 |
|
0
Here’s how I detect antipodal pairs: 1. Take a perpendicular distance from a vertex to the base (or edge). 2. The antipodal vertex must maximize this distance. 3. As I move the opposite pointer forward: i. If the distance increases, keep moving. ii. If the distance decreases, the previous vertex was the antipodal point. iii. If two consecutive vertices give the same distance, then both form valid antipodal pairs. d = |((x2-x1)(y3-y1) — (y2-y1)(x3-x1))| / sqrt(pow(y2-y1, 2) + pow(x2-x1 ,2)) In practice, we only need the numerator of the distance formula (the absolute cross product), since the denominator is constant for a given edge. d ∝ |((x2-x1)(y3-y1) — (y2-y1)(x3-x1))| This way the implementation only requires 3 points at a time (2 points from edge + 1 from vertex). It’s simpler and slightly faster, whereas the blog’s sign-change method involves 4 points. |
| Name |
|---|


