
砂金是星際和平公司的高管,前陣子接了蘇樂達(Soulglad)汽水的廣告代言。
有一天,他收到了公司寄來的 超 級 多 箱 蘇樂達汽水......
他決定把這些蘇樂達疊成一個巨大的 汽水塔!
已知一箱汽水有 m 瓶,砂金總共收到了 n 箱,因此總共有 m × n 瓶蘇樂達。
汽水塔由上往下,第 1 層 1 瓶、第 2 層 2 瓶……
每一層都比上一層多一瓶,也就是找最大的 h,
使得:
1 + 2 + ⋯ + h ≤ m × n
不過,身為賭徒的砂金總是不滿足於現狀!
在疊完最高 h 層之後,他看著手邊剩下的汽水(也可能剛好剩 0 瓶),
心想:「如果要再往下多疊一層(第 h+1 層),我還需要請公司補寄幾瓶蘇樂達過來?」
例如一箱汽水有 3 瓶(m=3),砂金總共收到了 2 箱(n=2),總共有 6 瓶:
1
1 1
1 1 1
剛好可以疊完 3 層(1+2+3=6),手邊剩下 0 瓶。
如果要再疊第 4 層(需要 4 瓶),他還差 4-0=4 瓶蘇樂達!
又例如一箱有 7 瓶(m=7),收到 2 箱(n=2),總共有 14 瓶?
假設總共有 14 瓶:
疊完 4 層用掉 10 瓶,手邊還剩 4 瓶;
如果要疊第 5 層(需要 5 瓶),就只差 5-4=1 瓶!
請幫砂金總監計算他的汽水塔最多可以疊幾層,以及若想再多疊一層還差幾瓶蘇樂達!
請分別輸入兩個整數,每次輸入前需換行:
m
n
其中:
m:一箱蘇樂達的瓶數
n:砂金收到的箱數
Note:
請使用 scanf() 讀取整數輸入。
所有數值皆為正整數,且 mn 不超過 int 範圍。
建議使用迴圈,從第 1 層開始,一層一層扣除需要的蘇樂達瓶數。
請依照以下格式輸出:
Aventurine can build a h-layer Soulglad tower, and needs k more bottle(s) for the next layer!
其中:
h:最多可以疊出的汽水塔層數
k:距離完成下一層(第 h+1 層)還缺少的蘇樂達瓶數
Note:
輸出最後必須有一個換行符號(\n)。
請確保輸出格式完全符合。