P05 · Packing and covering · Classic

Tilted equal squares in a circle · n = 5

Also known assquares in circlespacking unit squares in a circle

Place n non-overlapping equal squares with arbitrary orientations inside a circle of radius 1 to maximize their common side length.

Instancen = 5
ObjectiveMaximize the smallest side

Record comparison

the smallest side · Higher is better
RecordValue / intervalAuthor / holderSource
Proven optimum√10/5The-Anh Vu-Le2026-09Lean 4 formalisation ↗
Site recordNo player record yet——

The continuous optimum is proved, so competition submissions are closed. Historical records and contribution points are retained. Because finite-decimal coordinates cannot attain this value exactly, the current certificate is not claimed optimal on the nine-decimal grid.

Formal definition

  • ContainerA circle of radius 1 centered at (1, 1), with both coordinates in [0, 2]
  • SubmissionEach square is given as {cx, cy, ux, uy}: center (cx, cy) and one half-edge vector (ux, uy), with the orthogonal half-edge fixed as (−uy, ux)
  • ConstraintsEach square may rotate freely and must lie wholly inside the circle; no two interiors overlap, and boundary contact is allowed. The public metric is the minimum side length across all squares
  • ObjectiveMaximize the common side length (the verifier compares squared side lengths using exact arithmetic internally)
Inspect in editor ↗

Layout shown: starter layout

2y0
0x2
VERIFIED CONSTRUCTION5 squares

Getting a feel for it

Rotational freedom against a circular boundary

Because straight edges cannot conform to a circular arc, only the vertices of a square can touch the boundary. Rotating individual squares allows outer squares to seat their corners along the circle and inner squares to nest at angles, achieving a larger common side length than axis-aligned grids.

Proven optima and open frontier

Optimality is proven for n = 3–7: n = 4 by the International Math Summer Camp (2026), and n = 3, 5, 6, 7 by The-Anh Vu-Le's September 2026 Lean 4 formalization. Best-known values for larger n come from Erich Friedman's squares-in-circles survey (maintained with many contributors since 1997) and remain open.

Source
The current arrangement for Tilted equal squares in a circle n = 5
LAYOUT & HISTORY

Starter layout

Inspect the layout, solver notes and record history.

Proven optimumSubmit a proof / idea ↓Share a proof or bound argument in the discussion board. Accepted contributions earn proof points.
Record history (4 changes)
  1. Erich FriedmanHuman
    0.63245553200→0.63245553203
  2. qwertHuman
    0.626536989→0.632455532
  3. qwertHuman
    0.538375105→0.626536989
  4. NUE_13Human
    0.392232266→0.538375105
ANSWER FORMAT

How to write your answer

The container is a circle of radius 1 centred at (1, 1), so coordinates run from 0 to 2. Coordinates and vectors share one unit and are written as plain decimals such as "0.4", to at most nine decimal places.

Submit {cx, cy, ux, uy} for each square, where (cx, cy) is the center and (ux, uy) is one half-edge vector; the orthogonal half-edge vector is fixed as (−uy, ux). Write each number as a decimal string such as "0.4". Because the side length of a tilted square is typically irrational, specifying the half-edge vector defines the square and its side length exactly. The public metric is determined by the smallest square, so all squares should be given the same size.

Starter answer

{
  "squares": [
    {
      "cx": "1.000000000",
      "cy": "1.000000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "0.800000000",
      "cy": "0.400000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "1.200000000",
      "cy": "1.600000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "0.400000000",
      "cy": "1.200000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "1.600000000",
      "cy": "0.800000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    }
  ]
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 5
}

Starter answer

{
  "squares": [
    {
      "cx": "1.000000000",
      "cy": "1.000000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "0.800000000",
      "cy": "0.400000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "1.200000000",
      "cy": "1.600000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "0.400000000",
      "cy": "1.200000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    },
    {
      "cx": "1.600000000",
      "cy": "0.800000000",
      "ux": "0.100000000",
      "uy": "0.300000000"
    }
  ]
}

Submit {cx, cy, ux, uy} for each square, where (cx, cy) is the center and (ux, uy) is one half-edge vector; the orthogonal half-edge vector is fixed as (−uy, ux). Write each number as a decimal string such as "0.4". Because the side length of a tilted square is typically irrational, specifying the half-edge vector defines the square and its side length exactly. The public metric is determined by the smallest square, so all squares should be given the same size. · Verifier v1.0.0

DISCUSSION

Discussion

Discuss strategies, share construction methods, or ask questions. Any signed-in user can post under their public byline and unique #UID. New posts appear after moderation.