【測驗M11】八十八學年度高級中學資訊學科能力競賽決賽程式設計試題            [回前頁]

  1. 寫一個程式,讀入一個文字檔,將檔案中所出現的數字相加,將答案輸出。

    Example:

    Input(in_a.txt):

    Asdf j213k as kfjas 932kk s8aklsd

    Asd klfj 823kjds

    23ksad f9ksdaf

    asdfj89as df8kasdf

    Output : 213+932+8+823+23+9+89+8=2105

     

  2. 捷運票價計算系統

    首都捷運公司打算設計一套系統用於依搭乘捷運的距離來計算票價,捷運各路線依英文字母A、B、..依序命名,每一路線各站則以流水號命名從1號依序下去,如A1代表A捷運路線的第一站。各捷運路線間可能有交錯點(表B3=C4則表示三路線的交錯,以此類推),該交錯點允許乘客不必出站直接可轉乘另一路線的捷運,所乘坐的里程則累加兩條或以上捷運路線之乘坐距離以計算票價。票價計算基準為前5公里一律20元,以後每3公里加5元,如下表。

    乘坐里程(KM)

    0~5.0

    5.1~8.0

    8.1~11.0

    11.1~14.0

    14.1~17.0

    以下類推

    票價

    20

    25

    30

    35

    40

    以下類推

    已知各捷運站與鄰站間的距離、各捷運路線轉乘站、乘客搭乘起站,試求從該起站至所有其他捷運站所需的最少票價。

    輸入:

      第一行整數,捷運路線數 N

      第二行至N+1行為捷運A、B、..路線從第一站至最末站各站之間距的浮點數值列,中間以逗號區隔,單位是公里。

      第N+2行為各交錯點字串列,中間以逗號區隔。

      第N+3行為乘客搭乘起站的站名。

    輸出:

      每一行輸出站各與從起站到此站之最短距離與票價,中間以逗號區隔。

    範例檔:

    輸入檔內容(in_c.txt):

    2

    1.2,1.9,2.4,2.1,1.1,1.3,0.9

    0.8,1.1,1.7,1.0,1.9,1.9,1.5,2.0

    A4=B5

    B2

    輸出檔內容:

    A1,9.3,30

    A2,8.1,30

    A3,6.2,25

    A4,3.8,20

    A5,5.9,25

    A6,7.0,25

    A7,8.3,30

    A8,9.2,30

    B1,0.8,20
    B2,0.0,20

    B3,1.1,20

    B4,2.8,20

    B5,3.8,20

    B6,5.7,25

    B7,7.6,25

    B8,9.1,30

    B9,11.1,35

     

  3. 參加國際資訊奧林匹亞(IOI)競賽者大約有一半的選手可以獲得獎牌。In_d.txt即為被評為可以獲獎的名單(第1欄為國家代碼,第2欄為選手姓名,第3欄為其成績),在此名單中,金、銀、銅牌的分配約為1:2:3。試寫一程式依得分高任分配獎牌。輸出包括四部分:

  1. 由高至低排序,並將得獎類別寫在分數旁[G(金)、S(銀)、B(銅)]( 如輸出範例1)。

  2. 獎牌分配,即獲得金、銀、銅牌的個數 (如輸出範例2)。

  3. 得獎牌最多的國家,寫出國家代碼及獎牌 (不分類別) 數 (如輸出範例3)。

  4. 所有得獎者分數之平均數、最高分、最低分及全距 (即最高分與最低分的差距)(如輸出範例4)。

輸入範例(in_d.txt):

RSA Bruce Merry 333

HUN Balazs Racz 250

UKR Oleksandr lotko 230

ROM Bogdan Dumitru 360

VIE Nguyen N. Huy 430

SUI Peter Kaufmann 266

CRO Frane Saric 268

ROM Radu A. Stefan 150

BLR Ivan Miatselski 226

AUS Peter Hawkins 225

SVK Jan Senko 210

BUL Svetlin Nakov 208

輸出範例:

輸出範例1

VIE Nguyen N. Huy 430 G

ROM Bogdan Dumitru 360 G

RSA Bruce Merr 333 S

CRO Frane Saric 268 S

SUI Peter Kaufmann 266 S

HUN Balazs Racz 250 S

UKR Oleksandr lotko 230 B

BLR Ivan Miatselski 226 B

AUS Peter Hawkins 225 B

SVK Jan Senko 210 B

BUL Svetlin Nakov 208 B

ROM Radu A. Stefan 150 B

輸出範例2

G 2

S 4

B 6

輸出範例3

ROM 2

輸出範例4

263.00 430.00 150.00 280.00

  1. 你想用一個最賞心稅目的方式來佈置教室的F面牆壁。這些牆壁以編號1到F依序地編號。你有V個不同種類的圖畫,而圖畫是以整數1到V做為它們的代號。這些代號代表著圖畫佈置在牆壁的順序,也就是說,若i值小於j值,則i圖畫一定佈置在j圖畫的前面。舉例來說,假設你有一個杜鵑花圖畫(代號1)、一個秋海棠圖畫(代號2)、及一個康乃馨圖畫(代號3)。則杜鵑花圖畫的牆壁一定是在秋海棠圖畫的牆壁的前面,而秋海棠圖畫一定是佈置康乃馨圖畫的前面。一個牆壁只能佈置一圖畫。如果圖畫的數量大於牆壁的數量,那麼,多的圖畫即可閒置不用佈置。

每一個牆壁也有其特性。把圖畫佈置在牆壁裡就會產生一個「賞心悅目數值」(the aesthetic value),而這個數值是一個整數。牆壁上沒有佈置圖畫,則其賞心悅目數值為0。賞心悅目數值請參照以下的表格。

 

 

 

牆壁

圖畫

1杜鵑花

23

-5

-24

16

2秋海棠

21

-4

10

23

3康乃馨

-4

-20

20

根據這個表格,杜鵑花圖畫佈置在1號牆壁裡就會看起來效果最棒,而佈置在3號牆壁裡則效果最差。

為了達到最賞心悅目的效果,當你在注意圖畫的排列順序的同時,你也必須注意擺設產生的賞心悅目數值的加總數值是要最大的。你必須產生一個最棒的擺設結果。假如有超過一種擺設情況有相同的最大值,則任何一種擺設都可以接受。

假設條件

程式輸入

將輸入檔檔名取為in_e.txt

 輸出結果

 程式輸出結果的檔名必須為 考生編號out_e.txt並包含以下二行結果:

範例

輸入(in_e.txt):

  1. 4

  1. -5 -24 16

  1. -4 10 23

  1. -4 -20 20

輸出:

53

  1. 3 4