生徒の椅子にどのように椅子を配置するかについての興味深い好みを教えます。椅子の配置方法には3つの非常に具体的な要件があります。
一部の椅子が空になることを意味する場合でも、ほとんどの場合、長方形に配置されます。
空の椅子はできるだけ少なくする必要があります。
それらは可能な限り「正方形」でなければなりません。角型性は、長方形の幅と高さの間の距離によって決まり、低いほど良いです。たとえば
4x7、3の角型性を持つ長方形。
より具体的には、配置の「スコア」は、幅と高さの間の距離に、空になる椅子の数を加えたものです。
例を見てみましょう。13人の生徒がいるとしましょう。次のいずれかの方法で椅子を配置できます。
1x13
2x7
3x5
4x4
1x13非常に角張っていません。実際、1と13は12離れているので、この配置に12ポイントを与えます。また、空の椅子は0なので、0ポイントを追加して、このアレンジメントに12のスコアを与えます。
2x7確かに優れています。2と7は5つしか離れていないので、この配置に5ポイントを与えます。ただし、実際に7列の椅子を2列配置した場合、14列の椅子が必要になり、1列の椅子は空になります。そのため、このアレンジメントにスコア6を与えて、1ポイントを追加します。
することもできます3x5。3と5は2つ離れているため、+ 2ポイントです。15脚の椅子が必要です。つまり、2脚の椅子が必要なので、スコアが4になるとさらに2ポイント増えます。
最後のオプション4x4。4と4は0離れているため、この+0ポイントを与えます。4x4は16脚の椅子を使用するため、3脚の椅子は空になり、合計スコアは3になります。これが最適なソリューションです。
ネクタイの場合、最適なソリューションは空いている椅子が少ないものです。
チャレンジ
整数を取り、その数の生徒に最適な椅子の配置を出力するプログラムまたは関数を作成する必要があります。IOは、合理的な形式で作成できます。1〜100人の任意の数の学生のサンプル出力を次に示します。
1: (1, 1)
2: (1, 2)
3: (2, 2)
4: (2, 2)
5: (2, 3)
6: (2, 3)
7: (3, 3)
8: (3, 3)
9: (3, 3)
10: (2, 5)
11: (3, 4)
12: (3, 4)
13: (4, 4)
14: (4, 4)
15: (4, 4)
16: (4, 4)
17: (3, 6)
18: (3, 6)
19: (4, 5)
20: (4, 5)
21: (3, 7)
22: (5, 5)
23: (5, 5)
24: (5, 5)
25: (5, 5)
26: (4, 7)
27: (4, 7)
28: (4, 7)
29: (5, 6)
30: (5, 6)
31: (4, 8)
32: (4, 8)
33: (6, 6)
34: (6, 6)
35: (6, 6)
36: (6, 6)
37: (5, 8)
38: (5, 8)
39: (5, 8)
40: (5, 8)
41: (6, 7)
42: (6, 7)
43: (5, 9)
44: (5, 9)
45: (5, 9)
46: (7, 7)
47: (7, 7)
48: (7, 7)
49: (7, 7)
50: (5, 10)
51: (6, 9)
52: (6, 9)
53: (6, 9)
54: (6, 9)
55: (7, 8)
56: (7, 8)
57: (6, 10)
58: (6, 10)
59: (6, 10)
60: (6, 10)
61: (8, 8)
62: (8, 8)
63: (8, 8)
64: (8, 8)
65: (6, 11)
66: (6, 11)
67: (7, 10)
68: (7, 10)
69: (7, 10)
70: (7, 10)
71: (8, 9)
72: (8, 9)
73: (7, 11)
74: (7, 11)
75: (7, 11)
76: (7, 11)
77: (7, 11)
78: (9, 9)
79: (9, 9)
80: (9, 9)
81: (9, 9)
82: (7, 12)
83: (7, 12)
84: (7, 12)
85: (8, 11)
86: (8, 11)
87: (8, 11)
88: (8, 11)
89: (9, 10)
90: (9, 10)
91: (7, 13)
92: (8, 12)
93: (8, 12)
94: (8, 12)
95: (8, 12)
96: (8, 12)
97: (10, 10)
98: (10, 10)
99: (10, 10)
100: (10, 10)
いつものように、これはコードゴルフなので、標準的な抜け穴が適用され、勝者はバイト単位の最短回答です。