diff --git a/md/0041.md b/md/0041.md new file mode 100644 index 0000000..10edccc --- /dev/null +++ b/md/0041.md @@ -0,0 +1,19 @@ +พิจารณาเมื่อ $K$ เป็นเลขคู่ เนื่องจากเส้นผ่านศูนย์กลางของวงกลมแต่ละวงเป็น 2 เราเลยรู้ว่าไม่วิธีที่จะจัดวงกลมมากกว่า $K$ วงลงในพื้นที่สี่เหลี่ยมขนาด $4 \times K$ ตามรูป +![](../media/0041/evenFullPack.png) +ดังนั้นเมื่อให้ $N$ เลขคู่มา คำตอบคือ $K = N$ + +ส่วนสำหรับ $N$ ที่เป็นเลขคี่จะต้องแยกพิจารณาเป็นสามกรณี +1. เมื่อ $N = 1$ เราจะได้ว่ารูปที่เล็กที่สุดเป็น $4 \times 2$ ดังรูป +![](../media/0041/oneFullPack.png) +2. เมื่อ $N = 3$ เราจะได้ว่ารูปที่เล็กที่สุดเป็น $4 \times (2 + \sqrt 3)$ ดังรูป +![](../media/0041/threeFullPack.png) +3. เมื่อ $N \ge 5$ เราจะได้ว่ารูปที่เล็กที่สุดเป็น $4 \times (N-3 + 2\sqrt 3)$ ดังรูป +![](../media/0041/oddFullPack.png) + +```cpp +int n; cin >> n; +cout << fixed << setprecision(6); +if (n == 1) cout << 2.0; +else if (n == 3) cout << 2 + sqrt(3); +else cout << n + (n&1)*(2*sqrt(3)-3); +``` diff --git a/media/0041/evenFullPack.png b/media/0041/evenFullPack.png new file mode 100644 index 0000000..0c1b652 Binary files /dev/null and b/media/0041/evenFullPack.png differ diff --git a/media/0041/oddFullPack.png b/media/0041/oddFullPack.png new file mode 100644 index 0000000..86b2a3a Binary files /dev/null and b/media/0041/oddFullPack.png differ diff --git a/media/0041/oneFullPack.png b/media/0041/oneFullPack.png new file mode 100644 index 0000000..7b63a6a Binary files /dev/null and b/media/0041/oneFullPack.png differ diff --git a/media/0041/threeFullPack.png b/media/0041/threeFullPack.png new file mode 100644 index 0000000..5b8daef Binary files /dev/null and b/media/0041/threeFullPack.png differ