15082 - Aventurine and Soulglad II   

Description

砂金是星際和平公司的高管,前陣子接了蘇樂達(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 瓶!

請幫砂金總監計算他的汽水塔最多可以疊幾層,以及若想再多疊一層還差幾瓶蘇樂達!

 

Input

 請分別輸入兩個整數,每次輸入前需換行:

m

n

 

其中:

  • m:一箱蘇樂達的瓶數

  • n:砂金收到的箱數

Note:

  • 請使用 scanf() 讀取整數輸入。

  • 所有數值皆為正整數,且 mn 不超過 int 範圍。

  • 建議使用迴圈,從第 1 層開始,一層一層扣除需要的蘇樂達瓶數。 

Output

 請依照以下格式輸出: 

Aventurine can build a h-layer Soulglad tower, and needs k more bottle(s) for the next layer! 

其中:

  • h:最多可以疊出的汽水塔層數

  • k:距離完成下一層(第 h+1 層)還缺少的蘇樂達瓶數

Note:

  • 輸出最後必須有一個換行符號(\n)。

  • 請確保輸出格式完全符合。 

Sample Input  Download

Sample Output  Download

Tags




Discuss