c019: 1. 佈告欄貼紙
標籤 :
通過比率 : 8人/10人 ( 80% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-07-13 21:45

內容

⼩明的班級在新的學期搬到了⼀間新的教室。班上的同學採購了⼀堆貼紙,想⽤來佈置教室後⾯的佈告欄。⾝為學藝股長的⼩明,想到可以把「他們班的班號」張貼紙,排成⼀個長⽅形,這樣貼到佈告欄上後不但比較整⿑與壯觀,⽽且還同時具有他們班的特⾊。

然⽽,佈告欄終究會有長度與⾼度上的限制,所以如果長⽅形的長超過了佈告欄的長度,或是寬超過了佈告欄的⾼度的話,那這個長⽅形就無法被貼在佈告欄上。在這裡,每張貼紙的長和寬都是 1。

由於給定貼紙數量(也就是他們的班號)之後,能夠排成的長⽅形的長寬組合可能還是有很多種,加上要考慮到佈告欄的⼤⼩,因此⼩明希望你能幫他寫個程式,來列出所有可⾏的長⽅形。

輸入說明

輸入只有⼀⾏,包含三個整數: N、L、H,三者會⽤空⽩鍵分開。
其中,N 代表⼩明班的班號,L 和 H 分別代表佈告欄的長度與寬度。

  • 1 ≤ N ≤ 1000
  • 1 ≤ L ≤ 1000
  • 1 ≤ H ≤ 1000
輸出說明

輸出要有 x ⾏,x 是指可⾏的長⽅形種類的數量。

在輸出的第 i ⾏中 ( 1 ≤ i ≤ x ),要印出兩個整數:li 和 wi,兩者⽤空⽩鍵分隔。其中,li 和 wi 分別表⽰其中⼀ 種可⾏的長⽅形的長和寬。此外,你的輸出必須滿⾜ l1 < l2 <...< lx

範例輸入 #1
104 20 20
範例輸出 #1
8 13
13 8
範例輸入 #2
220 50 15
範例輸出 #2
20 11
22 10
44 5
範例輸入 #3
327 10 1000
範例輸出 #3
1 327
3 109
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (25%): 1.0s , <1K
公開 測資點#1 (25%): 1.0s , <1K
公開 測資點#2 (25%): 1.0s , <1K
公開 測資點#3 (25%): 1.0s , <1K
提示 :

在範例⼀中,班號是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)兩者是可⾏的。

標籤:
出處:
2022YTP決賽 [管理者:
zero (管理員)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」