2012年4月30日 星期一

Gran Turismo 5

內容 :

最近,

籌錢買了一片 Gran Turismo 5 回家做賽車夢,

又另外買了 G27 方向盤,

但在賽車場上的表現始終不如人意。

"車,不是這麼開的。"

說完爸爸接過了方向盤,

將記錄一次又一次的刷新。

給你每一圈的時間紀錄,

請算出 Best Lap 與平均時間。

我一定要成為車神! 

輸入說明 :

第一行有一個數字 N (0 < N ≤ 10)

代表接下來有 N 組測試資料

每組測試資料第一行有一個數字 M (0 < M ≤ 100)

接著有 M 行資料

每行兩個數字 A, B (0 ≤ A, B ≤ 60)

代表該圈所花費時間為 A 分 B 秒 

輸出說明 :

Track X:

Best Lap: X minute(s) X second(s).

Average: X minute(s) X second(s). 

Average 為整數,小數部份無條件捨去

詳請參考範例測資 

範例輸入 :

3
4
1 54
2 02
1 58
1 50
3
1 23
1 42
1 37
5
3 00
2 56
3 04
2 50
3 01

範例輸出 :

Track 1:
Best Lap: 1 minute(s) 50 second(s).
Average: 1 minute(s) 56 second(s).

Track 2:
Best Lap: 1 minute(s) 23 second(s).
Average: 1 minute(s) 34 second(s).

Track 3:
Best Lap: 2 minute(s) 50 second(s).
Average: 2 minute(s) 58 second(s).

基礎排序

給一堆數字, 把他們從小到大排序好。

輸入說明:

  每組測試資料共有兩行,第一行的數字n 為有幾個數字要排序,第二行則有n 個整數(n≤1000),其餘整數皆於-10000到10000 之間,測試資料中包含多組測試,當排序個數為0 時結束。

輸出說明:
  輸出已排序好的數列,每個數字之間請用一個空白隔開。

輸入範例:
5
5 4 3 2 1
5
-1 -2 -3 -4 -5
0

輸出範例:
1 2 3 4 5
-5 -4 -3 -2 -1

尋找第K大的位置

請設計一個程式,能在一個數列中,找出此數列第K大數字的位置。例如,有一個數列為8,20,27,17,13,28,35,31,第三大的數字為28,此數字的位置在串列中的第6個位置;第5大的數字為20,此數字的位置在串列中的第2個位置。
輸入說明:輸入之第一列為下一列數列中的個數。第二列為數列資料。每個數字與數字間的區隔為一個空白符號。第三列及以後的資料為要尋找第K大數字的K值,當為0時表示結束。(請參照輸入範例)
輸入範圍:輸入的數列最少為2個,最多不超過100個。每個數列中的數字皆大於0,小於1000,且不重覆。
輸入範例:in.txt
8
8 20 27 17 13 28 35 31
3
5
10
0
輸出說明:輸入的每個K值皆有一個位置的輸出結果,若超過數列的個數則輸出-1。(請參照輸出範例)
輸出範例:out.txt
6
2
-1

排序

排序在電腦科學中是一個重要的部分,在這個問題中將限定使用一種排序方式,就是你只能交換相鄰的2個元素。將數列由小到大排序,並計算出最少要交換幾次才能排好。例如給你1 2 3,那需要交換的次數為0,因為已經排好了。例如給你2 3 1這個數列,第一次交換1跟3變成2 1 3,第二次交換2跟1變成1 2 3,因此最少需要交換2次才可排好。

輸入說明:輸入之奇數列為下一行數列中的個數,偶數列為數列資料,代表一組測試資料。每個數字與數字間的區隔為一個空白符號,當奇數列為0時表示結束。(請參照輸入範例)
輸入範圍:每個數列最少有2個數字,最多不超過100個。每個數列中的數字皆大於0,小於1000,且不重覆。
輸入範例:in.txt
3
1 2 3
3
2 3 1
0

輸出說明:對每一組輸入資料,輸出最少需要交換的次數。(請參照輸出範例)
輸出範例:out.txt
0
2

關係運算子


請設計一個程式,能判斷出兩個數值之間三種狀態的關係運算子:

(1)第一個數字大於第二個數字。
(2)第二個數字小於第一個數字。
(3)兩個數字一樣大。
第 4 頁/共 5 頁
輸入說明:每一列由二個數字所組成,為一組測試資料。每個數字與數字間的區隔為一個空白符號,當為0 0時表示結束。(請參照輸入範例)
輸入範例:in.txt
10 20
20 10
10 10
0 0
輸出說明:對於每組測試資料,輸出『>』、『<』、『=』,代表該二數字的關係。(請參照輸出範例)
輸出範例:out.txt



2012年4月28日 星期六

因數


已知兩個整數nd,請你找出n這個值,會有多少個因數可以被d整除。
輸入說明:
每組輸入包含兩個以空白隔開的數字nd,其n ( 0 < n < 1000000 ),而d ( 2 ≤ d < 1000 )
輸出說明:
對於每組測試資料,輸出n這個值,會有多少個因數可以被d整除。
輸入範例:
36 2
64 8
輸出範例:
6
4

2012年4月27日 星期五

傳統數學問題的解決


如果有一個正整數n,其值等於所有n 的因數(除了n 以外)之總合,則n 稱為「完美數」(Perfect number)。在此計算中,其「因數」不限制為「質因數」。請輸出2 到數字k 之間的完美數。

輸入說明:
第1 行有1 個數字,代表k 的值。而k 的值不超過50000。

輸出說明:
每行輸出1 個範圍內的完美數,依其值由小到大輸出。

輸入範例:【檔名:in.txt】
10000
輸出範例:【檔名:out.txt】

6
28
496
8128

今晚打老虎


這台機器有三顆功能鍵跟數字小鍵盤



功能鈕上分別寫著


1. Insert


2. Query MAX


3. Query MIN


旁邊寫著一行粗字: 極值經查詢後將會刪除 


題目看到這各位也明瞭了吧


請你寫出這台機器的程式


可以插入數字並且查詢其中的最大值與最小值 


輸入說明 :
每行輸入開頭有三種情形


1: 插入操作,其後會跟著一數字 N 代表插入的數字 (0 ≤ N ≤ 2^31-1)
2: 查詢最大值
3: 查詢最小值
同一時間內最多有 100,0000 個數字


輸出說明 :
每筆查詢輸出一行


每行只有一個數字 




範例輸入 :


1 3
1 100 

1 4 
3


範例輸出 :


100 
3

海星


  每個人都有自己的喜歡的東西,而Fuko最喜歡的就是海星了。你沒看錯,請不要對別人的興趣不以為然。



而且善良純真的Fuko秉持著與民同樂的想法,想把快樂散佈到這個世界上,她認為只要讓每個人都有海星,這個世界就可以變得和諧愉快。


所以她利用閒暇時間雕刻木製海星,然後一遇到自己的朋友就把海星硬塞到對方手中。


因為這個木製海星是手工製的,所以每一個海星都不會相同,而Fuko會在送出每個海星前在上面標明自己對於這個海星的滿意度x,x越大代表她對這顆海星越滿意。


為了讓自己的雕刻海星更臻於完美,她會不時的回想起她送出的海星中第k好的滿意度,然後利用自己對於海星的驚人記憶力想起那個海星的優缺點進而改進技術。


只可惜人並不是完美的,雖然Fuko對海星有強大的記憶力,可是看到亂七八糟的數字就舉手投降了,這讓她造成了非常大的困擾,沒有辦法想起滿意度就沒有辦法雕刻出更好的海星,當然也就不能讓這個世界更加和平了!


Fuko的姐姐Kouko知道了Fuko的煩惱,所以特地請你來幫她寫一個程式,可以記錄她送出的海星滿意度,並在適當的時候提醒她目前送出的第k好的海星是哪一個。




輸入說明 :


每行有一條指令依序執行,分別為


GIVE X:代表送出一個滿意度為X的海星             ( 0 < X <= 100000000 )
FIND K:代表回想送出的海星中第K好的滿意度   
END:Fuko累了要去睡覺囉!



輸出說明 :


對於下列三種指令


GIVE X:不輸出
FIND K:輸出Fuko送出的海星中第K好的滿意度
END:不輸出並結束程式






範例輸入 :


GIVE 1
GIVE 3
GIVE 5
FIND 1
FIND 2
FIND 3
GIVE 2
GIVE 4
FIND 1
FIND 2
FIND 3
FIND 4
FIND 5
END 


範例輸出 :


5
3





1

2012年4月25日 星期三

偶數分解


把一個偶數 n 分解成兩個質數,並輸出任意一組即可。 輸出格式請參考輸出範例。 2  n  2 ^ 31 - 1

輸入範例:

10
20
22
12
52
4
100
48
32
10000000


輸出範例:

10 = 3 + 7
20 = 3 + 17
22 = 3 + 19
12 = 5 + 7
52 = 5 + 47
4 = 2 + 2
100 = 3 + 97
48 = 5 + 43
32 = 3 + 29
10000000 = 29 + 9999971

2012年4月24日 星期二

排列組合

請設計一個程式,可以將一組數字、字母或符號進行排列,以得到不同的組合順序,例如123這三個數的排列組合有:123、132、213、231、312、321六組;或是ABC這三個字母的排列組合有:ABC、ACB、BAC、BCA、CAB、CBA六組。

輸入說明:第一列為要排列的列數,第二列及以後為一組由數字、字母或符號組成的字串。(請參照輸入範例)
輸入範圍:每個數字、字母或符號皆為一個字元,每組最少為3個字元,最多不超過10個,且不重覆。
輸入範例:in.txt
2
213
ABC

輸出說明:輸出不同的組合順序,順序規則如下:請按照字典排序,由左到右,由上到下,由小到大排列。(請參照輸出範例)
輸出範例:out.txt
123
132
213
231
312
321
ABC
ACB
BAC
BCA
CAB
CBA

2012年4月20日 星期五

排列組合一

從檔案 in.txt 讀入排列組合的項目,將所有可能的排列輸出到out.txt。

輸入範例:
a b c 1

輸出範例:

abc1
bac1
cab1
1abc
acb1
a1bc
bca1
b1ac
cba1
c1ab
1bac
1cab
ab1c
ba1c
ca1b
1acb
ac1b
a1cb
bc1a
b1ca
cb1a
c1ba
1bca
1cba

0 與 1 的遊戲

內容 :
有 1 個 bit,可以表示 0 與 1。
有 2 個 bit,可以表示 00,01,10,11。
有 n 個 bit,請產生所有 n 個 bit 所能表示的 2 進位數字。
輸入說明 :
每行一個數字 n ( 0 < n < 15 )
代表 n 個bit
輸出說明 :
請參考範例輸出
範例輸入 :
1
2
範例輸出 :
0
1
00
01
10
11
提示 :
字串是你的好朋友

2012年4月16日 星期一

數列的公差或等比

在數列中有等差數列以及等比數列,已知道數列的前四項,請判斷出此數列是等差或者等比數列,並求出公差或等比。

輸入說明:
第一行是數列的數目t(0<= t <=10) 。以下每行均包含四個以空白格開的整數,表示數列的前四項。數列的前四項均為不大於10000的自然數,等比數列的比值也是自然樹。

輸出說明:
對數列的每個數列,輸出兩個欄位,欄位與欄位之間以一個空白隔開,若是等差數列則第一欄輸出A,若為等比數列則第一欄輸出G;第二欄則根據數列的判斷結果,輸出其公差或是等比。

輸入範例:
2
2 4 6 8
2 4 8 16
輸出範例:
A 2
G 2

Eva 的回家作業

內容 :
  Eva的家庭作業裏有很多數列填空練習。填空練習的要求是:已知數列的前四項,填出第五項。因 為已經知道這些數列只可能是等差或等比數列,她決定寫一個程式來完成這些練習。
輸入說明 :
第一行是數列的數目t(0 <= t <= 20)。 以下每行均包含四個整數,表示數列的前四項。 約定數列的前五項均為不大於105的自然數,等比數列的比值也是自然數。
輸出說明 :
對輸入的每個數列,輸出它的前五項。
範例輸入 :
2 
1 2 3 4 
1 2 4 8
範例輸出 :
1 2 3 4 5 
1 2 4 8 16

2012年4月15日 星期日

分解後次方和

求 1~100000 中,其分解的N次方和恰等於原來的數。
請依次方大小依序列出

( 2 <= N <= 10 )

範例:

153 = 1^3 + 5^3 + 3^3

輸出:
153 的 3 次方和與 153 相符
370 的 3 次方和與 370 相符
371 的 3 次方和與 371 相符
407 的 3 次方和與 407 相符
1634 的 4 次方和與 1634 相符
8208 的 4 次方和與 8208 相符
9474 的 4 次方和與 9474 相符
4150 的 5 次方和與 4150 相符
4151 的 5 次方和與 4151 相符
54748 的 5 次方和與 54748 相符
92727 的 5 次方和與 92727 相符
93084 的 5 次方和與 93084 相符

2012年4月11日 星期三

電費系統

假設你身為一個台電工程師,你正要為 GOGO 百貨的電梯設計一套電費計算系統,來計算GOGO 百貨的電梯每天所耗的電費是多少。已知電梯所耗的電力會和它所運作的樓層成正比,但是電梯下樓比上樓要省電。所以想請你根據下面這個規則,設計一套電費計算系統。
(1) 電梯上樓時,每經過一個樓層,要花電費 20 元。
(2) 電梯下樓時,每經過一個樓層,要花電費 10 元。
(3) 你可以假設電梯停在某一個樓層時不會耗電。
舉例來說:今天有一個電梯從2 樓到8 樓再到5 樓,則所耗的電費為:從2樓到8 樓,所耗的電費是(8-2) x 20 = 120 元。電梯從8 樓到5 樓,所耗的電費是(8-5) x 10 = 30 元。所以總共花了150 元。
輸入說明 :
輸入檔中會有多筆資料,第一行是一個整數 N(1<=50),用來表示某一天中電梯所停過的樓層數。第二行是一組以空白分隔的n 個數字,分別表示電梯先後停過的樓層。 N=0 的時候,程式結束。
輸入測資中的電梯樓層最高不會超過 101 樓。
輸出說明 :
請根據電梯上下運作的樓層,計算出在一日中電梯運作所花的電費。(為了節能減碳,每日電費最高不會超過10,000 元。)
範例輸入 :
3
2 8 5
7
2 9 7 3 4 6 1
0

範例輸出 :
150
310

2012年4月6日 星期五

笨小猴

內容:
笨小猴的詞彙量很小,所以每次做英語選擇題的時候都很頭疼。 但是他找到了一種方法,經試驗證明,用這種方法去選擇選項的時候選對的機率非常大!
這種方法的具體描述如下:假設maxn是單詞中出現次數最多的字母的出現次數,minn是單詞中出現次數最少的字母的出現次數,如果maxn-minn是一個質數,那麼笨小猴就認為這是個Lucky Word,這樣的單詞很可能就是正確的答案。
輸入說明:
輸入只有一行,是一個單詞,其中只可能出現小寫字母,並且長度小於100
輸出說明:
輸出共兩行,第一行是一個字符串,假設輸入的的單詞是Lucky Word,那麼輸出“Lucky Word”,否則輸出“No Answer”;
第二行是一個整數,如果輸入單詞是Lucky Word,輸出maxn-minn的值,否則輸出0
範例輸入:
範例1: error
範例2: olymipic
範例輸出:
範例1: Lucky Word 2
範例2: No Answer 0
提示:

單詞error中出現最多的字母r出現了3次,出現次數最少的字母出現了1次,3-1=22是質數。


單詞olymipic中出現最多的字母i出現了2次,出現次數最少的字母出現了1次,2-1=11不是質數。