顯示具有 Volume 117XX 標籤的文章。 顯示所有文章
顯示具有 Volume 117XX 標籤的文章。 顯示所有文章

2011年7月21日 星期四

11714 - Blind Sorting


我是一隻北極熊,有一天我的貓熊朋友問我一個問題,他先把我的眼睛矇起來,並告訴我現在有 n 個不同的數字,我可以問他數列中第 a 個數字是否大於第 b 個數字,他會告訴我答案,而我必須找出最大的數字與第二大的數字是數列中的那一個。我告訴他我可以用最少的比較次數來得到答案。

Input
輸入的每列為整數 n,n大於等於且可以用有號的32bit整數來表示。

Output
輸出每組測試資料的n個數字中,找出前兩個最大的數字最少需要做幾次比較運算。

Sample Input
Output for Sample Input
2
4
1
4

原文出處

11723 - Numbering Roads



在我的國家,街道的名字都是以數字來表示,如果用來表示每條街道的數字都能不一樣是最好不過的了,但事情總是無法盡如人意。地方政府用數字來為每條街道取名字,但常常用來取名的不同數字個數會小於街道的總數。為了要解決這個 問題,我們可以在數字後面加上一個後綴字,例如街道可取名為 1, 2, 3, 1A, 2B, 3C,後綴字只限26個大寫字母(A, B, ..., Z)。例如,有4條街道及2個可用的數字,則部份可行的命名組合如下:

1, 2, 1A, 2B
1, 2, 1A, 2C
3, 4, 3A, 4A
1, 2, 1B, 1C

給定街道的總數R,及用來命名的數字個數N,你必須計算最少需要幾個不同的後綴字來唯一地命名每條街道。

Input
輸入最多10002列,每列有兩個整數R與N(0 < N, R < 10001),R表示街道的總數,N表示可用來命名的數字個數。

Output

請每組測試資料輸出一列,並輸出每組的編號與最少需要幾個不同的後綴字來唯一地命名每條街道,若所有命名的組合小於街道總數,請輸出"impossible"。

 

Sample Input                                 Output for Sample Input

8 5
100 2
0 0
Case 1: 1
Case 2: impossible

2011年7月20日 星期三

11799 - Horror Dash


本題給定一個陣矩的所有元素,請你找出最大值。

Input

輸入的第一列有一個整數T(T <= 50)表示測試資料的組數,接下來有T列,每列表示一組測試資料,每一列的第一個整數為N,表示陣列元素的個數,接下來在該列會有N個以空白隔開的整數,表示N個陣列元素,其值大於等於1,小於等於10000。

Output

請參考下列範列資料輸出解答。
Sample Input
Sample Output
2
5 9 3 5 2 6
1 2
Case 1: 9
Case 2: 2

11734 - Big Number of Teams will Solve This




ACM上傳題目之答案輸出必需與解答完全一致,若僅僅只有因為多餘或缺少部份的空白字元則視為輸出格式錯誤,本題請你判斷兩字串的差異,若完全一致請輸出"Yes",若彼此之間僅差在有多餘或缺少的空白字元,請輸出"Output Format Error",其他情況請輸出"Wrong Answer"。

Input

輸入的第一列為整數 t (t < 20)表示測試資料的組數,每組測試資料二列,分別為欲比較的字串,其長度最多20個字元。每組的第一列包含字母與空白字元,第二列僅有字母。

Output

每組測試資料請參考範例資料輸出。



Sample Input
Sample Output
3
yes
yes
Casematters
casematters
no space        please
nospaceplease

Case 1: Yes
Case 2: Wrong Answer
Case 3: Output Format Error


11703 - sqrt log sin


萬惡的教授請你算出下列序列中的某一項,項次最大到1000000:


Input Specification

輸入的每一列有一個整數表示項次 i (0<= i <= 1000000),當 i = -1表示資料結束。

Sample Input

0
-1

Output Specification

請輸出 xi 除1000000的餘數。

Output for Sample Input

1

原文出處

2011年7月18日 星期一

11777 - Automate the Grades

本題請你計算學生的學期成績,學期成績的計算方式如下:

  • 第一次期中考,佔20%。
  • 第二次期中考,佔20%。
  • 期未考,佔30%。
  • 出席成績,佔10%。
  • 隨堂小考成績,佔20%。
依分數高低分成五種級距:
  • A >= 90%
  • B >= 80% & < 90%
  • C >= 70% & < 80%
  • D >= 60% & < 70%
  • F < 60%
本題會給你二次期中考成績、期未考成績、出席成績,及三次隨堂小考成績,要注意的是,隨堂小考成績是從這三次小考中取分數最高的兩次再取平均。


Input
輸入的第一列為整數T(T<100),表示測試資料的組數,每組資料一列有 7 個整數,分別表示:第一次期中考 第二次期中考 期末考 出席 小考1 小考2 小考3。所給定的數值都是合理的,不會有小於零或是超過成績比重的分數。

Output
請輸出每組測試資料的編號及成績級距(A B C D F)。格式請參考範例資料。

Sample Input                                     Output for Sample Input
3
15 18 25 8 15 17 12
20 20 30 10 20 20 20
20 20 30 10 18 0 0 
Case 1: B
Case 2: A
Case 3: B


原文出處

11743 - Credit Check


今日,用信用卡網路購物已經變得相當普遍,由於使用者可能打錯信用卡號,所以一般電子商務型網站都會對信用卡號作檢查。
其中一種錯誤檢查機制稱為Luhn algorithm,它可以把所有打錯一個位數的錯誤找出來,甚至於能挑出打錯多個位數的錯誤,它的檢查規則如下:
用一個例子來講解會比較方便,例如信用卡號(5181 2710 9900 0012):
  1. 將偶數位置上的數字乘2,也就是將(5181 2710 9900 0012)中粗體底線的數字乘2,得到10, 16, 4, 2, 18, 0, 0, 2。
  2. 將剛剛所得到的數字中每一個位數數值加總,即(1+0) + (1+6) + 4 + 2 + (1+8) + 0 + 0 + 2 = 25。將信用卡號中奇數位數的數字作加總,即1+1+7+0+9+0+0+2 = 20,再將兩數相加25+20=45。
  3. 45的個位數並非0,所以這個信用卡號並不合法。
本題請你用此法檢查信用卡號是否正確。

Input Format
輸入的第一列為整數N,表示測試資料的組數,接下來的N列分別為一個信用卡號,信用卡號有16個數目字,四個數字一組以一個空白字元隔開。

Output Format 
若信用卡號是檢查合格的,請輸出"Valid",否則請輸出"Invalid"。


Sample Input

2
5181 2710 9900 0012
5181 2710 9900 0017

Sample Output

Invalid
Valid

原文出處

11715 - Car


你開著一輛車,初速為 u m/s,加速度為常數 a,經過時間 t 後速度變為 v m/s,且車子位移的距離為 s。五個變數中給定三個數值,請你算出另外兩個數值為何。

Input
輸入有四種格式:
1 u v t
2 u v a
3 u a s
4 u a s
以一個 0 表示資料結束。

Output
針對四種輸入格式,你必須輸出:
若輸入為 1 u v t,請輸出 s 與 a。
若輸入為 2 u v a,請輸出 s 與 t。
若輸入為 3 u a s,請輸出 v 與 t。
若輸入為 4 v a s,請輸出 u 與 t。

請參考範例資料。你可以假定所有的參數都是合理的,也請善用double資料型態,並將輸出印至小數點下三位。

Sample Input
Output for Sample Input
1 10 5 2.0
1 5 10.0 2
2 10 11 2
3 5 1 6
4 5.0 -1 6
0
Case 1: 15.000 -2.500
Case 2: 15.000 2.500
Case 3: 5.250 0.500
Case 4: 6.083 1.083
Case 5: 6.083 1.083

原文出處

2011年7月17日 星期日

11716 - Digital Fortress


本題給定一個加密字串,請你將它解密,例如下列字串:
WECGEWHYAAIORTNU
將它解密後得到:
WEAREWATCHINGYOU

解密的原理如下:對於一個密文長度為平方數(1, 4, 9, 16, 25, 36...)的字串,例如本例密文長度16,為4的平方,將密文以"列順序"的方式來填入一個n*n的格子中(本例n=4),也就是將前n個字母填入第一列,再將之後的n個字母填入第二列,以此類推…如下所示:
W  E  C  G
E  W  H  Y
A  A   I   O
R   T  N  U
再將上面方陣中的元素以"行順序"的方式讀出(第一行由上往下,再取第二行由上往下…),得到解密的資訊:
WEAREWATCHINGYOU

Input
輸入的第一列為整數T,表示測試資料的組數,每組測試資料一列表示加密的密文,且皆為大寫字母或是空白字元,字串長度不超過10,000。

Output
請輸出每筆資料解密後的明文,若長度非任何數的平方數,則請輸出INVALID。

Sample Input
Output for Sample Input
3
WECGEWHYAAIORTNU
DAVINCICODE
DTFRIAOEGLRSI TS
WEAREWATCHINGYOU
INVALID
DIGITAL FORTRESS

原文出處

11713 - Abstract Names


有些電腦遊戲,尤其是運動類遊戲,遊戲中球員的名字總是與現實世界中球員的名字不完全一樣,這是為了避免產生肖像權的爭議。本題給你一對名字,其中一個名字為現實世界球員的名字,另一個為遊戲中的名字,你必須判斷兩個名字是否是"相似的"。

兩個名字被視為"相似的"之判斷原則為:首先,名字長度必需一致;第二,若相對應位置上的字母不相同,則此兩個字母必需皆為母音字母(a, e, i, o, u)。這表示遊戲中的名字是藉由將球員名字中的母音字母以另一個母音取代。例如:polo與pola相似,但pele不同於pelet或bele。

Input

輸入的第一列有一個整數 n (n <= 20)表示測試資料的組數。每組測試資料有兩列分別為兩個名字,其長度最多20個字母,且皆為小寫字母。

Output

對每組資料的兩個名字,若為相似的請輸出"Yes",否則請輸出"No"。

Sample Input
Output for Sample Input
5
pele
polo
pele
pola
ronaldo
ronaldino
pele
pelet
pele
bele
Yes
Yes
No
No
No

原文出處

2011年5月28日 星期六

11764 - Jumping Mario


馬莉歐已經到了最後的城堡,他現在必須跳過幾道牆才能到達庫巴的房間,擊倒庫巴並救出公主。現在我們只關心"跳過每一道牆"的部份,本題會由左而右給你所有 N道牆的高度,馬莉歐現在正站在第一道牆上,他必須向右依序跳到相鄰的牆上直到最後一道牆為止,也就是說,他必須跳(N-1)次,"向上跳"表示他由較低 的牆跳到較高的牆。"向下跳"表示由較高的牆跳到較低的牆,你能夠找出他做了幾次向上跳與向下跳的動作嗎?
Input
輸入的第一列為整數 T (T < 30)表示測試資料的組數,每一組測試資料一開始會給定整數 N (0 < N < 50)表示有幾道牆,下一列會由左而右提供牆的高度,牆的高度不會超過10。

Output

請依下列格式輸出每組測試資料的編號、向上跳的次數與向下跳的次數。


Sample Input                            Output for Sample Input

3
8
1 4 2 2 3 5 3 4
1
9
5
1 2 3 4 5

Case 1: 4 2
Case 2: 0 0
Case 3: 4 0

原文出處

2011年5月27日 星期五

11727 - Cost Cutting

XYZ公司由於面臨經濟不景氣必須降低營運成本,所以他們決定要裁員!

他們決定裁掉會計部三位員工中的其中兩位,並決定把最高薪與最低薪的那兩位裁掉。偉大的高層的決策通常就是這麼地無腦。

給定會計部三位員工的薪資,你必須找出誰是唯一留下來的人。

Input

第一列有一個整數T表示測試資料的組數(T<20)。每組資料有三個不同的正整數,分別表示三位員工的薪資,所有資都在[1000, 10000]的範圍。

Output

請輸出每組資料該位留下來的員工的薪資。

Sample Input                             Output for Sample Input

3
1000 2000 3000
3000 2500 1500
1500 1200 1800
 
Case 1: 2000
Case 2: 2500
Case 3: 1500