小波有一座城堡,他每天都在他的城堡裡過著快樂的日子,直到有一天,他的城堡被小奕攻擊了。在小奕攻擊小波的城堡時,城堡的某一面城牆居然被小奕完全摧毀了!剛好小波覺得這面城牆本來就長得很醜,正好可以重新建造一次這面城牆。
這面城牆的寬度是 公尺,他將整面城牆劃分成 個寬 1 公尺的區塊,由左至右從 1 到 編號,並且訂購了 個寬度為 1、厚度和城牆一樣、高度不等的石磚,一個石磚必須剛好放進一個區塊之中,不能跨越多個區塊,也不能旋轉。正式地說,這 個區塊有各自的高度,一開始高度都是 0,如果一個區塊本來的高度是 ,接著小波在這個區塊多放一個高度為 的石磚,在這之後這個區塊的高度會變成 。
小波訂購的 個石磚會依序送達,第 個石磚的高度是 ,然而小波在拿到石磚之前,都不會知道他訂購的石磚高度究竟是多少,他又迫不及待地想要看到城牆蓋好的樣子,因此他每收到一個石磚,就要立刻選一個區塊來放。他選擇區塊的原則是這樣的:如果目前第 個區塊的高度是 ,那這面城牆的醜度就是
特別地,。小波希望選擇一個區塊放置這個石磚,使得放下去之後,這面城牆的醜度盡量小。如果有多個區塊都會讓醜度最小,他會選擇編號最小的區塊。
舉例來說,、,10 個石磚的高度依序是 。在放第一個石磚的時候,無論放在哪裡,放下後的醜度都會是 18,因此小波會將第一個石磚放在第 1 個區塊。在放第二個石磚的時候,放在區塊 1 的話醜度會是 32、放在區塊 2 的話醜度會是 14、放在其他區塊則會是 20,因此小波會將第二個石磚放在區塊 2。過程中每個區塊的高度變化如下圖,紅色的石磚代表剛放下去的石磚,下方的數字代表該區塊的高度。
小奕偷偷知道了這 個石磚的高度,他很好奇小波新蓋的城牆會長什麼樣子,以便規劃下一次的攻城行動,請你告訴小奕最終每個區塊的高度會是多少。