碎屍萬段是一個幾何題技巧,顧名思義就是把題目中的幾何物件切成許多份。其中一個最常見的途是把圓轉成正很多邊形,就能用現有的多邊形方法去解決這些問題。
不過顯然這個方法有很多誤差問題,跑得也比較慢,而且出題者大多都很聰明,所以這個技巧很難在實際的地方用上。
可是今天不一樣,你要碎屍萬段的目標是一顆超立方蛋糕。
現在你手邊有的是 $n$ 維的超立方蛋糕,
如果把 $n$ 維空間中的點座標化成 $(x_1, x_2, \ldots, x_n)$,那 $n$ 維的蛋糕可以這樣想像:
每一刀當然也是 $n$ 維的超平面,也就是由 $a_1, a_2, \ldots, a_n, c$ 這 $n + 1$ 個參數所決定,表示這一刀會把所有 
$a_1x_1 + a_2x_2 + \cdots + a_nx_n < c$ 跟 $a_1x_1 + a_2x_2 + \cdots + a_nx_n > c$ 的所有蛋糕都分開。
切在中間(也就是 $a_1x_1 + a_2x_2 + \cdots + a_nx_n = c$ )的不算,因為它會黏在刀子上。
你的目標是用最少的刀數切過所有的邊,也就是說所有 $n \cdot 2^ {n-1}$ 條邊,兩端的頂點都至少被某一刀切在兩邊。
輸入第一行只有一個正整數 $n$,代表正立方體的維度。
如果你覺得你需要切 $k$ 刀,那就在第一行輸出 $k$。
接下來再輸出 $k$ 行,每一行都按照順序輸出 $n + 1$ 個由空白分開的整數 $a_1, a_2, \ldots, a_n, c$,代表第 $i$ 刀要切的參數。
每一刀的參數必須要滿足下面的條件,不然會太難切。
其中 $e$ 是自然常數。
保證在題目範圍內,最小的刀數在這個條件下可以達到。
另外你不可以學範例輸出(沒創意!),如果你這樣做你會得到 Wrong Answer 並倒扣整題的分數。
2
2 1 1 -1 1 1 1
| No. | Testdata Range | Constraints | Score | 
|---|---|---|---|
| 1 | 0 | 範例測資,$n = 2$ | 5 | 
| 2 | 1 | $n = 3$ | 10 | 
| 3 | 2 | $n = 4$ | 15 | 
| 4 | 3 | $n = 5$ | 20 | 
| 5 | 4 | $n = 6$ | 50 |