⼩明的班級在新的學期搬到了⼀間新的教室。班上的同學採購了⼀堆貼紙,想⽤來佈置教室後⾯的佈告欄。⾝為學藝股長的⼩明,想到可以把「他們班的班號」張貼紙,排成⼀個長⽅形,這樣貼到佈告欄上後不但比較整⿑與壯觀,⽽且還同時具有他們班的特⾊。
然⽽,佈告欄終究會有長度與⾼度上的限制,所以如果長⽅形的長超過了佈告欄的長度,或是寬超過了佈告欄的⾼度的話,那這個長⽅形就無法被貼在佈告欄上。在這裡,每張貼紙的長和寬都是 1。
由於給定貼紙數量(也就是他們的班號)之後,能夠排成的長⽅形的長寬組合可能還是有很多種,加上要考慮到佈告欄的⼤⼩,因此⼩明希望你能幫他寫個程式,來列出所有可⾏的長⽅形。
輸入只有⼀⾏,包含三個整數: N、L、H,三者會⽤空⽩鍵分開。
其中,N 代表⼩明班的班號,L 和 H 分別代表佈告欄的長度與寬度。
輸出要有 x ⾏,x 是指可⾏的長⽅形種類的數量。
在輸出的第 i ⾏中 ( 1 ≤ i ≤ x ),要印出兩個整數:li 和 wi,兩者⽤空⽩鍵分隔。其中,li 和 wi 分別表⽰其中⼀ 種可⾏的長⽅形的長和寬。此外,你的輸出必須滿⾜ l1 < l2 <...< lx。
104 20 20
8 13 13 8
220 50 15
20 11 22 10 44 5
327 10 1000
1 327 3 109
在範例⼀中,班號是104,因此長⽅形的長與寬可以是(1,104),(2,52),(4,26),(8,13),(13,8),(26,4),(52,2),
(104,1)。但是因為佈告欄的長度與⾼度都只有20,所以只有(8,13)和(13,8)兩者是可⾏的。
在範例⼆中,班號是220,因此長⽅形的長與寬可以是(1,220),(2,110),(4,55),(5,44),(10,22),(11,20),
(20,11),(22,10),(44,5),(55,4),(110,2),(220,1)。但是因為佈告欄的長度只有50,⾼度只有15,所以只有
(20,11)和(22,10)和(44,5)三者是可⾏的。
在範例三中,班號是327,因此長⽅形的長與寬可以是(1,327),(3,109),(109,3),(327,1)。但是因為佈告欄的長度
只有10,⾼度只有1000,所以只有(1,327)和(3,109)兩者是可⾏的。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |