---
# System prepended metadata

title: S1B 緞帶分割
tags: [solution]

---

---
title: S1B 緞帶分割
tags: solution
---

# B. 緞帶分割

此題要求緞帶盡可能的被均分，又或是可以把此題看成堆積木的問題：

![](https://i.imgur.com/Q9VaJP9.png =200x)

本題的問題點是在於要如何抓出這些緞帶長度會有多少個，
並且只要稍微仔細一想不難發現，緞帶的長度只會有兩種可能：$x$ 和 $x+1$
( 一定要把當前這一層都疊完之後才能疊下一層 )

所以問題可以看成：長度 $x$ 會有幾條、長度 $x+1$ 會有幾條
而 $x$ 可以用一個很簡單的方法就算出來：$x=\lfloor L/k \rfloor$，
而 $x+1$ 的長度一共會 $L\%k$ 條 ( 或是可以寫成 $L-kx$ )。

![](https://i.imgur.com/VfSZpJi.png =400x)

因此，基本上可以得出兩種長度的佔用長度分別為：
- 短的緞帶長 $L/k$，共有 $k-L\%k$ 條
- 長的緞帶長 $L/k+1$，共有 $L\%k$ 條


```cpp=
# include <iostream>
using namespace std;

int main(){
    int T,L,K;

    cin>>T;
    while(T--){
        cin>>L>>K;
        
        cout<<L/K<<'*'<<(K-L%K);
        if(L%K > 0)
            cout<<", "<<(L/K+1)<<'*'<<(L%K);
            
        cout<<'\n';
    }
}
```