| 19 | auto rngl = mt19937_64(random_device()()); |
| 20 | |
| 21 | array<int, 2> direction(array<int, 2> x1, array<int, 2> x2) {return {x2[0] - x1[0], x2[1] - x1[1]};} |
| 22 | bool sgn(array<int, 2> x) {return x[0] > 0 || (x[0] == 0 && x[1] > 0);} |
| 23 | __int128_t cross(array<int, 2> x1, array<int, 2> x2) {return 1ll * x1[0] * x2[1] - 1ll * x1[1] * x2[0];} |
| 24 | __int128_t dot(array<int, 2> x1, array<int, 2> x2) {return 1ll * x1[0] * x2[0] + 1ll * x1[1] * x2[1];} |