我們知道假設我們有無限多的各式硬幣時,我們可以有很多種方式組合出特定的金額。瘋狂的電腦科學家們於是稍微把這個問題複雜化,現在考慮我們買東西付錢時,我們不可能隨身攜帶無限多的各式硬幣,在這種情況下,可以組成特定金額的方式就會被我們身上現有的硬幣所限制。

瘋狂的電腦科學家們好奇的是,假設店家手上有足夠的硬幣可以找錢,在這次交易中,我們付出去與店家找回來所使用的硬幣總數,最小可以是多少。(在這個問題中我們以紐西蘭的硬幣為例,共有:5c、10c、20c、50c、\$1、\$2 這六種硬幣,不考慮紙鈔)

舉例來說,如果我們買了一個 55c 的物品,而且手上不幸剛好沒有 50c 的硬幣,所以一種可能的付法就是給店家 2*20c + 10c + 5c,這麼一來這次交易中總共就有四枚硬幣被使用到;如果我們選擇付 \$1 給店家,那麼店家要找回 45c,這麼一來總共還是需要用到四枚硬幣;但是,如果我們給店家 \$1 + 5c,則店家只需要找回 50c,這樣就只需要用到三枚硬幣,這就是這次交易中,所使用的最小硬幣總數。

你的任務就是,寫個程式讀入我們有多少硬幣在手上、以及要付多少錢給店家,並找出所使用的最小硬幣總數。

Input

輸入會包含許多行,一行代表一次交易。每一行的六個整數代表前面提到的六種硬幣我們手上各有多少個 (分別對應到面提到的順序:5c、10c、20c、50c、\$1、\$2),該行的最後一個數字會是一個小於五的實數,代表這次交易中要付多少錢。當程式讀到六個零時 (0 0 0 0 0 0),代表測資結束。

測資不會出現手上的零錢無法或不足以支付交易金額的情形,也就是說交易金額永遠是 5c 的倍數。

Output

對每一行測試資料,輸出一行包含最小被使用的硬幣總數。輸出長度為 3,靠右對齊。請參考 Sample Output。

Sample Input

2 4 2 2 1 0  0.95
2 4 2 0 1 0  0.55
0 0 0 0 0 0

Sample Output

2
3

在 Turbo C 中的整數資料型態 (int) 最大的正整數 (unsigned int) 只能到 65535,即使使用長整數 (unsigned long) 最大也只能到 4294967295。但是有時候這樣的整數仍然不夠大,我們需要一種 VeryLongInteger,他的長度為小於或等於 100 個數字。

這個問題是要請你寫一個程式來作 VeryLongInteger 的加法。

Input

輸入的每一行代表一個 VeryLongInteger (所有 VeryLongInteger 均為正數)。

最後一行只包含一個 0,代表輸入結束。

Output

輸出所有輸入的 VerylongInteger 之和。

Sample Input

123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0

Sample Output

370370367037037036703703703670

本題中你的任務是寫一支可以畫迷宮的程式,這個迷宮將由 A-Z 26 個字母及 * (星號) 和空白字元組成。

Input and Output

你的程式必須從 input 讀入迷宮的資訊,輸入將包含數列字元,你的程式必須依照指示畫出迷宮。迷宮的每一列都會藉由一系列的數字和字元來表達,數字代表這個字元被使用多少次。如果數字超過一位數則這個字元重複出現的次數為每一位數相加的總合。

在 input 中小寫的 b 代表空白字元,驚嘆號 (!) 以及換行都代表結束一列。

迷宮的列數並沒有限制,但是每一列不會超過 132 個字元。

Sample Input

1T1b5T!1T2b1T1b2T!1T1b1T2b2T!1T3b1T1b1T!3T3b1T!1T3b1T1b1T!5T1*1T

11X21b1X
4X1b1X

Sample Output

T TTTTT
T  T TT
T T  TT
T   T T
TTT   T
T   T T
TTTTT*T

XX   X
XXXX X

算一算每行有幾個字 (word)。

Word 的定義是連續的字元 (letter: A~Z a~z) 所組成的字。

Input

測試資料每筆一行,每行至少有一個字。

Output

輸出每一行的 word 數。

Sample Input

Meep Meep!
I tot I taw a putty tat.
I did! I did! I did taw a putty tat.
Shsssssssssh ... I am hunting wabbits. Heh Heh Heh Heh ...

Sample Output

2
7
10
9

有一家石油公司負責探勘某塊地底下的石油含量,這塊地是矩行的,並且為了探勘的方便被切割為許多小塊。然後使用儀器對每個小塊去探勘。含有石油的小塊稱為一個 pocket。假如兩個 pocket 相連,則這兩個 pocket 屬於同一個 oil deposit。(所謂相連的定義與踩地雷遊戲中的定義相同,請參考 sample input, sample output)

你的任務就是要找出這塊地包含幾個不同的 oil deposit。

閱讀全文 »

寫一支程式可以將每一個單字按照每個字母出現的順序反序排列。

Input

輸入檔包含數列,每列各有數個單字。單字與單字間由空白字元分隔開來。

Output

輸出的列數與字數必須與輸入一樣。但是每個單字中的字母必須反序排列。

Sample Input

I love you.
You love me.
We're a happy family.

Sample Output

I evol .uoy
uoY evol .em
er'eW a yppah .ylimaf

在 1742 年一個德國業餘數學家 Christian Goldbach,他作了以下的猜測:

任何一個比 4 大的偶數一定能夠找到 2 個奇數的質數使其和相等。例如:

$8=3+5$ (3 和 5 都是奇數,且是質數)
$20=3+17=7+13$ $42=5+37=11+31=13+29=19+23$

你的任務就是寫一個程式來驗證他的猜測。

Input

輸入包含好幾筆測試資料,每筆資料 1 行,包含一個偶數的整數 n ($4 < n < 1000000$)。

$n=0$ 代表輸入結束。

Output

對每筆輸入資料你應該要以 n = a + b 的形式輸出,其中 a、b 都是奇數的質數。

如果有一組以上的 a、b,請輸出 b-a 最大的那組。

如果找不到這樣的 a、b,請輸出 Goldbach's conjecture is wrong.

Sample Input

8
20
42
0

Sample Output

8 = 3 + 5
20 = 3 + 17
42 = 5 + 37

有 n 個人參加拔河比賽,分成 2 隊,2 隊的人數最多只能相差 1 個人。因為拔河的勝負通常與體重有很大的關係,所以我們希望 2 隊總體重盡可能接近。

Input

第一列有一個整數,代表以下有幾組測試資料。每筆測試資料的第1列有一個整數 $n$ ($n\leq{100}$),代表共有 $n$ 個人參加拔河。接下來的 $n$ 列,代表這 $n$ 個人的體重,體重均介於 1 到 450 之間。測試資料間有空一列。請參考 Sample Input

Output

每一筆測試資料請輸出一列,包含 2 個整數,代表 2 隊的總體重。如果這 2 個數不相同,小的在前面。測試資料間有空一列。請參考 Sample Output。

Sample input

2

3
100
90
200

7
1
2
3
444
4
5
6

Sample Output

190 200

18 447

在小學時我們都做過加法的運算,就是把 2 個整數靠右對齊然後,由右至左一位一位相加。如果相加的結果大於等於 10 就有進位 (carry) 的情況出現。你的任務就是要判斷 2 個整數相加時產生了幾次進位的情況。這將幫助小學老師分析加法題目的難度。

Input

每一列測試資料有 2 個正整數,長度均小於 10 位。最後一列有 2 個 0 代表輸入結束。

Output

每列測試資料輸出該 2 數相加時產生多少次進位,請參考 Sample Output。注意進位超過 1 次時 operation 有加 s

Sample Input

123 456
555 555
123 594
0 0

Sample Output

No carry operation.
3 carry operations.
1 carry operation.

Hashmat 是一個勇敢的將領,他帶著年輕的士兵從這個城市移動到另一個城市與敵人對抗。在打仗之前他會計算己方與敵方士兵的數目差距,來決定是要開打或不開打。Hashmat 的士兵數絕不會比敵人的士兵數大。

Input

每組測試資料 $1$ 列,有 $2$ 個整數,代表 Hashmat 及敵人的士兵數或反之。這些數不會超過 $2^{32}$

Output

對每組測試資料請輸出 Hashmat 與敵人士兵數目的差 (正數)。

Sample Input

10 12
14 10
100 200

Sample Output

2
4
100