Skip to content

Instantly share code, notes, and snippets.

@AspirantDrago
Created December 7, 2025 12:05
Show Gist options
  • Select an option

  • Save AspirantDrago/70d28b02b78c660a10ca81457a7e32c0 to your computer and use it in GitHub Desktop.

Select an option

Save AspirantDrago/70d28b02b78c660a10ca81457a7e32c0 to your computer and use it in GitHub Desktop.
data = {
5: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5)],
10: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5), (-1, 5), (-5, 2), (-4, -4), (-3, -5),
(0, -6), (1, -6), (6, -2), (5, 4), (3, 6), (0, 7), (-1, 7), (-4, 6), (-7, 2),
(-7, -3), (-6, -5), (0, -8), (1, -8), (8, -2), (6, 6), (3, 8), (-5, 7),
(-8, 4), (-9, 0), (-9, -1), (-7, -6), (-5, -8), (-3, -9), (4, -9), (7, -7),
(8, -6)],
20: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5), (-1, 5), (-5, 2), (-4, -4), (-3, -5),
(0, -6), (1, -6), (6, -2), (5, 4), (3, 6), (0, 7), (-1, 7), (-4, 6), (-7, 2),
(-7, -3), (-6, -5), (0, -8), (1, -8), (8, -2), (6, 6), (3, 8), (-5, 7),
(-8, 4), (-9, 0), (-9, -1), (-7, -6), (-5, -8), (-3, -9), (4, -9), (7, -7),
(8, -6), (10, -1), (10, 2), (9, 5), (3, 10), (-7, 8), (-10, 4), (-9, -6),
(0, -11), (1, -11), (5, -10), (8, -8), (9, -7), (11, -4), (12, 0), (12, 1),
(11, 5), (2, 12), (-7, 10), (-12, 3), (-11, -6), (-4, -12), (8, -10), (12, -5),
(13, -1), (13, 2), (12, 6), (10, 9), (8, 11), (5, 13), (0, 14), (-1, 14),
(-10, 10), (-11, 9), (-13, 6), (-12, -8), (-4, -14), (7, -13), (10, -11),
(12, -9), (15, -1), (15, 2), (14, 6), (13, 8), (3, 15), (-4, 15), (-11, 11),
(-12, 10), (-14, 7), (-15, 5), (-16, 0), (-16, -1), (-14, -8), (-6, -15),
(-3, -16), (10, -13), (16, -4), (15, 7), (14, 9), (5, 16), (0, 17), (-1, 17),
(-6, 16), (-10, 14), (-17, 3), (-17, -4), (-15, -9), (-13, -12), (-5, -17),
(11, -14), (16, -8), (18, 0), (18, 1), (16, 9), (13, 13), (12, 14), (5, 18),
(-8, 17), (-10, 16), (-18, 6), (-19, 0), (-19, -1), (-14, -13), (-12, -15),
(-9, -17), (-7, -18), (-4, -19), (5, -19), (8, -18), (10, -17), (14, -14),
(15, -13), (19, -6), (20, 0)],
30: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5), (-1, 5), (-5, 2), (-4, -4), (-3, -5),
(0, -6), (1, -6), (6, -2), (5, 4), (3, 6), (0, 7), (-1, 7), (-4, 6), (-7, 2),
(-7, -3), (-6, -5), (0, -8), (1, -8), (8, -2), (6, 6), (3, 8), (-5, 7),
(-8, 4), (-9, 0), (-9, -1), (-7, -6), (-5, -8), (-3, -9), (4, -9), (7, -7),
(8, -6), (10, -1), (10, 2), (9, 5), (3, 10), (-7, 8), (-10, 4), (-9, -6),
(0, -11), (1, -11), (5, -10), (8, -8), (9, -7), (11, -4), (12, 0), (12, 1),
(11, 5), (2, 12), (-7, 10), (-12, 3), (-11, -6), (-4, -12), (8, -10), (12, -5),
(13, -1), (13, 2), (12, 6), (10, 9), (8, 11), (5, 13), (0, 14), (-1, 14),
(-10, 10), (-11, 9), (-13, 6), (-12, -8), (-4, -14), (7, -13), (10, -11),
(12, -9), (15, -1), (15, 2), (14, 6), (13, 8), (3, 15), (-4, 15), (-11, 11),
(-12, 10), (-14, 7), (-15, 5), (-16, 0), (-16, -1), (-14, -8), (-6, -15),
(-3, -16), (10, -13), (16, -4), (15, 7), (14, 9), (5, 16), (0, 17), (-1, 17),
(-6, 16), (-10, 14), (-17, 3), (-17, -4), (-15, -9), (-13, -12), (-5, -17),
(11, -14), (16, -8), (18, 0), (18, 1), (16, 9), (13, 13), (12, 14), (5, 18),
(-8, 17), (-10, 16), (-18, 6), (-19, 0), (-19, -1), (-14, -13), (-12, -15),
(-9, -17), (-7, -18), (-4, -19), (5, -19), (8, -18), (10, -17), (14, -14),
(15, -13), (19, -6), (20, 0), (20, 1), (18, 9), (17, 11), (4, 20), (-10, 18),
(-13, 16), (-17, 12), (-20, 6), (-21, 0), (-21, -1), (-18, -11), (-7, -20),
(-3, -21), (4, -21), (13, -17), (19, -10), (20, -8), (21, -5), (21, 6),
(20, 9), (19, 11), (17, 14), (2, 22), (-7, 21), (-13, 18), (-20, 10), (-21, 8),
(-22, 5), (-22, -6), (-20, -11), (-9, -21), (0, -23), (1, -23), (7, -22),
(10, -21), (12, -20), (16, -17), (22, -8), (23, -5), (21, 11), (9, 22),
(0, 24), (-1, 24), (-7, 23), (-16, 18), (-22, 10), (-24, 3), (-24, -4),
(-23, -8), (-20, -14), (-5, -24), (11, -22), (13, -21), (17, -18), (19, -16),
(24, -7), (25, -1), (22, 12), (10, 23), (3, 25), (-8, 24), (-18, 18),
(-19, 17), (-22, 13), (-24, 9), (-25, 6), (-25, -7), (-24, -10), (-22, -14),
(-19, -18), (-17, -20), (-4, -26), (11, -24), (13, -23), (22, -15), (26, -6),
(24, 12), (19, 19), (18, 20), (14, 23), (0, 27), (-1, 27), (-8, 26), (-13, 24),
(-25, 11), (-27, 5), (-26, -9), (-20, -19), (-18, -21), (-12, -25), (-10, -26),
(-7, -27), (0, -28), (1, -28), (8, -27), (13, -25), (26, -11), (28, -4),
(24, 15), (21, 19), (18, 22), (5, 28), (-9, 27), (-17, 23), (-26, 12),
(-27, 10), (-28, 7), (-29, 0), (-29, -1), (-26, -13), (-25, -15), (-23, -18),
(-17, -24), (-5, -29), (12, -27), (16, -25), (21, -21), (22, -20), (29, -7),
(27, 13), (24, 18)],
40: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5), (-1, 5), (-5, 2), (-4, -4), (-3, -5),
(0, -6), (1, -6), (6, -2), (5, 4), (3, 6), (0, 7), (-1, 7), (-4, 6), (-7, 2),
(-7, -3), (-6, -5), (0, -8), (1, -8), (8, -2), (6, 6), (3, 8), (-5, 7),
(-8, 4), (-9, 0), (-9, -1), (-7, -6), (-5, -8), (-3, -9), (4, -9), (7, -7),
(8, -6), (10, -1), (10, 2), (9, 5), (3, 10), (-7, 8), (-10, 4), (-9, -6),
(0, -11), (1, -11), (5, -10), (8, -8), (9, -7), (11, -4), (12, 0), (12, 1),
(11, 5), (2, 12), (-7, 10), (-12, 3), (-11, -6), (-4, -12), (8, -10), (12, -5),
(13, -1), (13, 2), (12, 6), (10, 9), (8, 11), (5, 13), (0, 14), (-1, 14),
(-10, 10), (-11, 9), (-13, 6), (-12, -8), (-4, -14), (7, -13), (10, -11),
(12, -9), (15, -1), (15, 2), (14, 6), (13, 8), (3, 15), (-4, 15), (-11, 11),
(-12, 10), (-14, 7), (-15, 5), (-16, 0), (-16, -1), (-14, -8), (-6, -15),
(-3, -16), (10, -13), (16, -4), (15, 7), (14, 9), (5, 16), (0, 17), (-1, 17),
(-6, 16), (-10, 14), (-17, 3), (-17, -4), (-15, -9), (-13, -12), (-5, -17),
(11, -14), (16, -8), (18, 0), (18, 1), (16, 9), (13, 13), (12, 14), (5, 18),
(-8, 17), (-10, 16), (-18, 6), (-19, 0), (-19, -1), (-14, -13), (-12, -15),
(-9, -17), (-7, -18), (-4, -19), (5, -19), (8, -18), (10, -17), (14, -14),
(15, -13), (19, -6), (20, 0), (20, 1), (18, 9), (17, 11), (4, 20), (-10, 18),
(-13, 16), (-17, 12), (-20, 6), (-21, 0), (-21, -1), (-18, -11), (-7, -20),
(-3, -21), (4, -21), (13, -17), (19, -10), (20, -8), (21, -5), (21, 6),
(20, 9), (19, 11), (17, 14), (2, 22), (-7, 21), (-13, 18), (-20, 10), (-21, 8),
(-22, 5), (-22, -6), (-20, -11), (-9, -21), (0, -23), (1, -23), (7, -22),
(10, -21), (12, -20), (16, -17), (22, -8), (23, -5), (21, 11), (9, 22),
(0, 24), (-1, 24), (-7, 23), (-16, 18), (-22, 10), (-24, 3), (-24, -4),
(-23, -8), (-20, -14), (-5, -24), (11, -22), (13, -21), (17, -18), (19, -16),
(24, -7), (25, -1), (22, 12), (10, 23), (3, 25), (-8, 24), (-18, 18),
(-19, 17), (-22, 13), (-24, 9), (-25, 6), (-25, -7), (-24, -10), (-22, -14),
(-19, -18), (-17, -20), (-4, -26), (11, -24), (13, -23), (22, -15), (26, -6),
(24, 12), (19, 19), (18, 20), (14, 23), (0, 27), (-1, 27), (-8, 26), (-13, 24),
(-25, 11), (-27, 5), (-26, -9), (-20, -19), (-18, -21), (-12, -25), (-10, -26),
(-7, -27), (0, -28), (1, -28), (8, -27), (13, -25), (26, -11), (28, -4),
(24, 15), (21, 19), (18, 22), (5, 28), (-9, 27), (-17, 23), (-26, 12),
(-27, 10), (-28, 7), (-29, 0), (-29, -1), (-26, -13), (-25, -15), (-23, -18),
(-17, -24), (-5, -29), (12, -27), (16, -25), (21, -21), (22, -20), (29, -7),
(27, 13), (24, 18), (15, 26), (2, 30), (-8, 29), (-17, 25), (-29, 9), (-30, 5),
(-28, -12), (-23, -20), (-16, -26), (-6, -30), (10, -29), (18, -25), (28, -13),
(31, 0), (31, 1), (30, 8), (26, 17), (22, 22), (21, 23), (14, 28), (9, 30),
(5, 31), (-6, 31), (-10, 30), (-15, 28), (-29, 13), (-30, 11), (-32, 0),
(-32, -1), (-29, -14), (-28, -16), (-12, -30), (-5, -32), (6, -32), (10, -31),
(15, -29), (30, -13), (32, -7), (31, 11), (27, 19), (14, 30), (3, 33),
(-4, 33), (-18, 28), (-22, 25), (-26, 21), (-32, 10), (-33, 6), (-31, -13),
(-28, -19), (-24, -24), (-8, -33), (0, -34), (1, -34), (18, -29), (32, -12),
(33, -9), (34, -4), (34, 5), (28, 20), (15, 31), (10, 33), (6, 34), (-7, 34),
(-11, 33), (-22, 27), (-31, 16), (-32, 14), (-35, 0), (-35, -1), (-33, -12),
(-29, -20), (-15, -32), (-5, -35), (10, -34), (13, -33), (19, -30), (22, -28),
(34, -11), (35, -8), (36, 0), (36, 1), (34, 12), (26, 25), (24, 27), (9, 35),
(4, 36), (-15, 33), (-19, 31), (-22, 29), (-30, 21), (-33, 16), (-35, 11),
(-36, 8), (-37, 0), (-37, -1), (-36, -9), (-33, -17), (-15, -34), (-4, -37),
(5, -37), (10, -36), (21, -31), (26, -27), (28, -25), (34, -16), (36, -11),
(37, -7), (35, 14), (32, 20), (30, 23), (12, 36), (0, 38), (-1, 38), (-9, 37),
(-27, 27), (-28, 26), (-32, 21), (-37, 10), (-38, 6), (-37, -11), (-36, -14),
(-32, -22), (-28, -27), (-17, -35), (-15, -36), (-1, -39), (2, -39), (21, -33),
(24, -31), (37, -13), (38, -10), (39, -5), (35, 18), (32, 23), (20, 34),
(6, 39), (-11, 38), (-28, 28), (-29, 27), (-33, 22), (-36, 17), (-38, 12),
(-40, 0)],
50: [(0, 0), (1, 0), (1, 1), (0, 2), (-1, 2), (-2, -2), (0, -3), (1, -3), (3, -2),
(4, 0), (4, 1), (3, 3), (2, 4), (0, 5), (-1, 5), (-5, 2), (-4, -4), (-3, -5),
(0, -6), (1, -6), (6, -2), (5, 4), (3, 6), (0, 7), (-1, 7), (-4, 6), (-7, 2),
(-7, -3), (-6, -5), (0, -8), (1, -8), (8, -2), (6, 6), (3, 8), (-5, 7),
(-8, 4), (-9, 0), (-9, -1), (-7, -6), (-5, -8), (-3, -9), (4, -9), (7, -7),
(8, -6), (10, -1), (10, 2), (9, 5), (3, 10), (-7, 8), (-10, 4), (-9, -6),
(0, -11), (1, -11), (5, -10), (8, -8), (9, -7), (11, -4), (12, 0), (12, 1),
(11, 5), (2, 12), (-7, 10), (-12, 3), (-11, -6), (-4, -12), (8, -10), (12, -5),
(13, -1), (13, 2), (12, 6), (10, 9), (8, 11), (5, 13), (0, 14), (-1, 14),
(-10, 10), (-11, 9), (-13, 6), (-12, -8), (-4, -14), (7, -13), (10, -11),
(12, -9), (15, -1), (15, 2), (14, 6), (13, 8), (3, 15), (-4, 15), (-11, 11),
(-12, 10), (-14, 7), (-15, 5), (-16, 0), (-16, -1), (-14, -8), (-6, -15),
(-3, -16), (10, -13), (16, -4), (15, 7), (14, 9), (5, 16), (0, 17), (-1, 17),
(-6, 16), (-10, 14), (-17, 3), (-17, -4), (-15, -9), (-13, -12), (-5, -17),
(11, -14), (16, -8), (18, 0), (18, 1), (16, 9), (13, 13), (12, 14), (5, 18),
(-8, 17), (-10, 16), (-18, 6), (-19, 0), (-19, -1), (-14, -13), (-12, -15),
(-9, -17), (-7, -18), (-4, -19), (5, -19), (8, -18), (10, -17), (14, -14),
(15, -13), (19, -6), (20, 0), (20, 1), (18, 9), (17, 11), (4, 20), (-10, 18),
(-13, 16), (-17, 12), (-20, 6), (-21, 0), (-21, -1), (-18, -11), (-7, -20),
(-3, -21), (4, -21), (13, -17), (19, -10), (20, -8), (21, -5), (21, 6),
(20, 9), (19, 11), (17, 14), (2, 22), (-7, 21), (-13, 18), (-20, 10), (-21, 8),
(-22, 5), (-22, -6), (-20, -11), (-9, -21), (0, -23), (1, -23), (7, -22),
(10, -21), (12, -20), (16, -17), (22, -8), (23, -5), (21, 11), (9, 22),
(0, 24), (-1, 24), (-7, 23), (-16, 18), (-22, 10), (-24, 3), (-24, -4),
(-23, -8), (-20, -14), (-5, -24), (11, -22), (13, -21), (17, -18), (19, -16),
(24, -7), (25, -1), (22, 12), (10, 23), (3, 25), (-8, 24), (-18, 18),
(-19, 17), (-22, 13), (-24, 9), (-25, 6), (-25, -7), (-24, -10), (-22, -14),
(-19, -18), (-17, -20), (-4, -26), (11, -24), (13, -23), (22, -15), (26, -6),
(24, 12), (19, 19), (18, 20), (14, 23), (0, 27), (-1, 27), (-8, 26), (-13, 24),
(-25, 11), (-27, 5), (-26, -9), (-20, -19), (-18, -21), (-12, -25), (-10, -26),
(-7, -27), (0, -28), (1, -28), (8, -27), (13, -25), (26, -11), (28, -4),
(24, 15), (21, 19), (18, 22), (5, 28), (-9, 27), (-17, 23), (-26, 12),
(-27, 10), (-28, 7), (-29, 0), (-29, -1), (-26, -13), (-25, -15), (-23, -18),
(-17, -24), (-5, -29), (12, -27), (16, -25), (21, -21), (22, -20), (29, -7),
(27, 13), (24, 18), (15, 26), (2, 30), (-8, 29), (-17, 25), (-29, 9), (-30, 5),
(-28, -12), (-23, -20), (-16, -26), (-6, -30), (10, -29), (18, -25), (28, -13),
(31, 0), (31, 1), (30, 8), (26, 17), (22, 22), (21, 23), (14, 28), (9, 30),
(5, 31), (-6, 31), (-10, 30), (-15, 28), (-29, 13), (-30, 11), (-32, 0),
(-32, -1), (-29, -14), (-28, -16), (-12, -30), (-5, -32), (6, -32), (10, -31),
(15, -29), (30, -13), (32, -7), (31, 11), (27, 19), (14, 30), (3, 33),
(-4, 33), (-18, 28), (-22, 25), (-26, 21), (-32, 10), (-33, 6), (-31, -13),
(-28, -19), (-24, -24), (-8, -33), (0, -34), (1, -34), (18, -29), (32, -12),
(33, -9), (34, -4), (34, 5), (28, 20), (15, 31), (10, 33), (6, 34), (-7, 34),
(-11, 33), (-22, 27), (-31, 16), (-32, 14), (-35, 0), (-35, -1), (-33, -12),
(-29, -20), (-15, -32), (-5, -35), (10, -34), (13, -33), (19, -30), (22, -28),
(34, -11), (35, -8), (36, 0), (36, 1), (34, 12), (26, 25), (24, 27), (9, 35),
(4, 36), (-15, 33), (-19, 31), (-22, 29), (-30, 21), (-33, 16), (-35, 11),
(-36, 8), (-37, 0), (-37, -1), (-36, -9), (-33, -17), (-15, -34), (-4, -37),
(5, -37), (10, -36), (21, -31), (26, -27), (28, -25), (34, -16), (36, -11),
(37, -7), (35, 14), (32, 20), (30, 23), (12, 36), (0, 38), (-1, 38), (-9, 37),
(-27, 27), (-28, 26), (-32, 21), (-37, 10), (-38, 6), (-37, -11), (-36, -14),
(-32, -22), (-28, -27), (-17, -35), (-15, -36), (-1, -39), (2, -39), (21, -33),
(24, -31), (37, -13), (38, -10), (39, -5), (35, 18), (32, 23), (20, 34),
(6, 39), (-11, 38), (-28, 28), (-29, 27), (-33, 22), (-36, 17), (-38, 12),
(-40, 0), (-40, -1), (-39, -9), (-38, -13), (-33, -23), (-18, -36), (-10, -39),
(-5, -40), (6, -40), (26, -31), (34, -22), (39, -11), (40, -7), (36, 19),
(33, 24), (21, 35), (15, 38), (9, 40), (1, 41), (-2, 41), (-13, 39), (-18, 37),
(-20, 36), (-26, 32), (-35, 22), (-39, 14), (-40, 11), (-41, 7), (-40, -12),
(-31, -28), (-15, -39), (-9, -41), (0, -42), (1, -42), (18, -38), (20, -37),
(36, -22), (41, -10), (42, -5), (40, 14), (30, 30), (24, 35), (11, 41),
(7, 42), (-12, 41), (-26, 34), (-38, 20), (-39, 18), (-43, 0), (-43, -1),
(-40, -16), (-31, -30), (-10, -42), (-4, -43), (5, -43), (14, -41), (19, -39),
(21, -38), (37, -23), (41, -15), (42, -12), (43, -8), (40, 18), (38, 22),
(33, 29), (16, 41), (2, 44), (-3, 44), (-10, 43), (-27, 35), (-40, 19),
(-41, 17), (-44, 6), (-44, -7), (-42, -15), (-37, -25), (-34, -29), (-20, -40),
(-18, -41), (-9, -44), (13, -43), (16, -42), (27, -36), (40, -21), (41, -19),
(43, -14), (45, -5), (42, 17), (34, 30), (29, 35), (25, 38), (15, 43),
(12, 44), (8, 45), (-13, 44), (-32, 33), (-34, 31), (-38, 26), (-41, 21),
(-42, 19), (-44, 14), (-46, 5), (-45, -11), (-37, -28), (-15, -44), (-7, -46),
(12, -45), (18, -43), (24, -40), (33, -33), (34, -32), (44, -16), (45, -13),
(46, -9), (42, 21), (41, 23), (25, 40), (5, 47), (-11, 46), (-33, 34),
(-42, 22), (-43, 20), (-45, 15), (-47, 7), (-46, -12), (-37, -30), (-26, -40),
(-16, -45), (-13, -46), (-9, -47), (0, -48), (1, -48), (10, -47), (14, -46),
(17, -45), (32, -36), (40, -27), (47, -11), (43, 22), (42, 24), (38, 30),
(26, 41), (8, 48), (-16, 46), (-21, 44), (-23, 43), (-34, 35), (-40, 28),
(-48, 9), (-49, 0), (-49, -1), (-48, -10), (-47, -14), (-41, -27), (-22, -44),
(-20, -45), (-5, -49), (15, -47), (18, -46), (29, -40), (35, -35), (36, -34),
(41, -28), (45, -21), (48, -13), (43, 25), (39, 31), (27, 42), (17, 47),
(14, 48)],
}
n = int(input())
answer = data.get(n, [])
print(len(answer))
for x, y in answer:
print(x, y)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment