P96 · Packing and covering · Classic · Hard

Consecutive L shapes in a square · n = 50

Pack n L shapes with short sides 1, 2, …, n into a square without overlap. Each L consists of three equal squares. Translate and rotate the pieces freely to minimise the container side.

Instancen = 50
ObjectiveMinimize the square's side

Record comparison

the square's side · Lower is better
RecordValue / intervalAuthor / holderSource
External best known——No reference listed
Site record366condorRecord details ↓

Formal definition

  • ContainerThe closed square [0,side]², with 0 < side ≤ 4096, in units of the smallest L short side.
  • SubmissionPiece k has local vertices (−k,−k), (k,−k), (k,0), (0,0), (0,k), (−k,k). Its translated origin is (x,y).
  • RotationRotation is free, not restricted to multiples of 90°. Exact quarter turns and a rational half-angle parameter encode it. Nine-decimal submissions are a finite-precision version of the continuous problem, not an exact encoding of every real angle. Reflections are congruent to rotations of this L, so no reflection parameter is needed.
  • ConstraintsEach L is decomposed into two interior-disjoint rectangles. Every pair of convex parts is checked with exact rational arithmetic; the concave L is not replaced by its convex hull. Contact is legal, positive-area overlap is rejected.
  • ObjectiveMinimise the square side. The public score is the source table’s s, with no conversion.S=side
Open full editor ↗

Layout shown: site record

VERIFIED CONSTRUCTIONsquare side 366

Getting a feel for it

Area bound

The total area is 3∑k² = n(n+1)(2n+1)/2, a lower bound on side². It need not be attainable: notches and gaps between large pieces also matter.

Published records

Friedman’s table covers n=1–20, with values and original authors cited. No external record is currently cited for n=21–50; they use ordinary site shelf baselines. Instances n=1 and 2 are proved optimal; the others remain open.

Source
The record-holding arrangement for Consecutive L shapes in a square n = 50, 366
LAYOUT & HISTORY

Record details

Inspect the layout, solver notes and record history.

Record holdercondor
Solution methodAI · OpenAI: GPT-6.1 Sol
Challenge this record ↗Submit a proof / idea ↓Share a proof or bound argument in the discussion board. Accepted contributions earn proof points.
Record holder's solver noteNo solver note yet (expand)+

The record holder has not shared a solver note yet.

Record history (7 changes)
  1. condorAI · OpenAI: GPT-6.1 Sol
    367→366
  2. condorAI · OpenAI: GPT-6.1 Sol
    369→367
  3. condorAI · OpenAI: GPT-6.1 Sol
    375→369
  4. condorAI · OpenAI: GPT-6.1 Sol
    378→375
  5. condorAI · OpenAI: GPT-6.1 Sol
    382→378
  6. condorAI · OpenAI: GPT-6.1 Sol
    462→382
  7. 今天Human
    463→462
ANSWER FORMAT

How to write your answer

Coordinates, short sides and container side share one unit. Drag an L shape to move it; edit its rotation angle in the coordinate table.

Submit side and placements. Entry k is the L with short side k, written {"x":"…","y":"…","quarter":0,"turn":"0"}. (x,y) is its bounding-box centre and concave corner. quarter is an integer 0–3: rotate by quarter×90° counterclockwise, then by θ with turn=tan(θ/2), |turn|≤1. Other values are decimal strings with at most nine places.

The current leader's answer

{
  "placements": [
    {
      "quarter": 0,
      "turn": "0",
      "x": "169",
      "y": "190"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "359",
      "y": "234"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "168",
      "y": "189"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "141",
      "y": "88"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "357",
      "y": "232"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "165",
      "y": "186"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "194",
      "y": "121"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "186",
      "y": "121"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "182",
      "y": "104"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "182",
      "y": "94"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "352",
      "y": "227"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "159",
      "y": "180"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "29",
      "y": "217"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "15",
      "y": "217"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "74",
      "y": "215"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "58",
      "y": "215"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "342",
      "y": "348"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "324",
      "y": "348"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "246",
      "y": "228"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "246",
      "y": "208"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "194",
      "y": "173"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "194",
      "y": "151"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "242",
      "y": "165"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "341",
      "y": "216"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "147",
      "y": "168"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "242",
      "y": "139"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "165",
      "y": "57"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "165",
      "y": "29"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "336",
      "y": "301"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "336",
      "y": "271"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "64",
      "y": "263"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "32",
      "y": "263"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "68",
      "y": "329"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "34",
      "y": "329"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "36",
      "y": "164"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "36",
      "y": "128"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "231",
      "y": "76"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "231",
      "y": "38"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "266",
      "y": "327"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "266",
      "y": "287"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "185",
      "y": "324"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "143",
      "y": "324"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "183",
      "y": "238"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "139",
      "y": "238"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "92",
      "y": "46"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "46",
      "y": "46"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "317",
      "y": "96"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "317",
      "y": "48"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "317",
      "y": "192"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "122",
      "y": "143"
    }
  ],
  "side": "366"
}
Submission format and technical detailsOpen this when you are ready to prepare a JSON answer+

Instance parameters

{
  "n": 50
}

The current leader's answer

{
  "placements": [
    {
      "quarter": 0,
      "turn": "0",
      "x": "169",
      "y": "190"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "359",
      "y": "234"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "168",
      "y": "189"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "141",
      "y": "88"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "357",
      "y": "232"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "165",
      "y": "186"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "194",
      "y": "121"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "186",
      "y": "121"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "182",
      "y": "104"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "182",
      "y": "94"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "352",
      "y": "227"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "159",
      "y": "180"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "29",
      "y": "217"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "15",
      "y": "217"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "74",
      "y": "215"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "58",
      "y": "215"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "342",
      "y": "348"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "324",
      "y": "348"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "246",
      "y": "228"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "246",
      "y": "208"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "194",
      "y": "173"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "194",
      "y": "151"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "242",
      "y": "165"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "341",
      "y": "216"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "147",
      "y": "168"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "242",
      "y": "139"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "165",
      "y": "57"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "165",
      "y": "29"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "336",
      "y": "301"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "336",
      "y": "271"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "64",
      "y": "263"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "32",
      "y": "263"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "68",
      "y": "329"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "34",
      "y": "329"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "36",
      "y": "164"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "36",
      "y": "128"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "231",
      "y": "76"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "231",
      "y": "38"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "266",
      "y": "327"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "266",
      "y": "287"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "185",
      "y": "324"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "143",
      "y": "324"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "183",
      "y": "238"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "139",
      "y": "238"
    },
    {
      "quarter": 2,
      "turn": "0",
      "x": "92",
      "y": "46"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "46",
      "y": "46"
    },
    {
      "quarter": 3,
      "turn": "0",
      "x": "317",
      "y": "96"
    },
    {
      "quarter": 1,
      "turn": "0",
      "x": "317",
      "y": "48"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "317",
      "y": "192"
    },
    {
      "quarter": 0,
      "turn": "0",
      "x": "122",
      "y": "143"
    }
  ],
  "side": "366"
}

Submit side and placements. Entry k is the L with short side k, written {"x":"…","y":"…","quarter":0,"turn":"0"}. (x,y) is its bounding-box centre and concave corner. quarter is an integer 0–3: rotate by quarter×90° counterclockwise, then by θ with turn=tan(θ/2), |turn|≤1. Other values are decimal strings with at most nine places. · 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.