問題０１

うるう年（１０点）（キーボード入力）

この問題は、矢沢久雄賞の対象となります。
（ソースコードの先頭にコメントでチーム番号を入れてください。）
西暦 a 年から b 年までの間にあるすべてのうるう年を出力して終了するプログラムを作成してください。
うるう年の条件は、次のとおりとします。ただし、0＜a≦b＜3,000 とします。与えられた期間にうるう年がない場
合には”NA”と出力してください。
・ 西暦年が 4 で割り切れる年であること。
・ ただし、100 で割り切れる年はうるう年としない。
・ しかし、400 で割り切れる年はうるう年である。

入力
a（整数）
b（整数）

出力
4 桁の西暦または NA（半角英大文字）

入力例１
2001
2010

出力例１
2004
2008

入力例２
2005
2005

出力例２
NA

1

ＰＣ甲子園２００５本選問題

問題０２

坪面積の計算（１０点）（キーボード入力）

土地の面積を表現するのに「○○坪」という単位を聞いたことはないでしょうか？古来、１人の武士が１日に食
べるお米を作る面積を言いました。そこで、a［m］×b［m］の土地があります。a と b を入力し、その土地の坪面積
S［坪］を出力して終了するプログラムを作成してください。なお、1 坪＝3．305785[m2]とし、a，bは 100 以下の整数とします。

入力
a（整数）
b（整数）

出力
S（坪）

入力例
15
25

出力例
113.437508

2

ＰＣ甲子園２００５本選問題

問題０３

ワカサギ釣り大会（１０点）（ファイル入力）

桧原湖でワカサギ釣り大会が行われました。一番多く釣った人が優勝者です。参加者の番号と釣った匹数が記録されているファイルを読み取り、優勝者の番号と釣った匹数を出力して終了するプログラムを作成してください。ただし、参加者数は 20 人未満とし、優勝者が複数いる場合は、最初の一人を出力してください。
入力データのファイル名は data03.csv とします。

入力
参加者番号,釣った匹数(整数;半角カンマ区切り)：：

出力
優勝者の参加者番号 釣った匹数(整数;半角空白区切り)

入力例
1,14
2,25
3,42
4,11
5,40
6,37

出力例
3 42

3

ＰＣ甲子園２００５本選問題

問題０４

腕立て伏せ（１０点）（ファイル入力）

体力測定において腕立て伏せが行われました。生徒番号と腕立て伏せ回数をファイルから読み込み、回数の多い順に順位をつけて、入力した順に生徒番号と順位を出力して終了するプログラムを作成してください。ただし、参加者数は 30 人未満とし、回数が同じ場合は同順位とします。
入力データのファイル名は data04.csv とします。

入力
生徒番号,腕立て伏せ回数(整数;半角カンマ区切り)：：

出力
生徒番号 順位(整数;半角空白区切り)：：

入力例
1001,44
1002,38
1003,58
1004,221005,44

出力例
1001 21002 41003 11004 51005 2

4

ＰＣ甲子園２００５本選問題

問題０５

身長（１０点）（ファイル入力）

クラスの身長の傾向を調べることになりました。身長をファイルから読み取り、背の高い順に身長を出力して終了するプログラムを作成してください。ただし、生徒人数は 20 人未満とします。
入力データのファイル名は data05.txt とします。

入力
身長(実数)：：

出力
背の高い順の身長（実数)
：
：

入力例
165.8
173.2
179.4
168.5

出力例
179.400000
173.200000
168.500000
165.800000

5

ＰＣ甲子園２００５本選問題

問題０６

誕生日と星座の関係（１０点）（キーボード入力）

誕生日と星座には下表のような関係があります。入力された誕生日に対応する星座の名前（英語表記）を出
力して終了するプログラムを作成してください。なお、誕生日（月日）と星座の関係は以下のとおりです。

12 星座一覧
英語表記

誕生日

日本語表記

3 月 21 日～4 月 19 日

おひつじ座

Aries

4 月 20 日～5 月 20 日

おうし座

Taurus

5 月 21 日～6 月 21 日

ふたご座

Gemini6 月 22 日～7 月 22 日

かに座

Cancer

7 月 23 日～8 月 22 日

しし座

Leo

8 月 23 日～9 月 22 日

おとめ座

Virgo

9 月 23 日～10 月 23 日

てんびん座

Libra

10 月 24 日～11 月 21 日

さそり座

Scorpius

11 月 22 日～12 月 21 日

いて座

Sagittarius

12 月 22 日～1 月 19 日

やぎ座

Capricornus

1 月 20 日～2 月 18 日

みずがめ座

Aquarius

2 月 19 日～3 月 20 日

うお座

Pisces

入力
月（整数）
日（整数）

出力
星座に対応する英文字（半角英字）

入力例
11
5

出力例
Scorpius

6

ＰＣ甲子園２００５本選問題

問題０７

成績分布（１０点）（ファイル入力）

ある教科の成績が記録されたファイルがあります。生徒番号と成績をファイルから読み込んで、おのおのの成績の人数を出力して終了するプログラムを作成してください。ただし、成績は 5 段階評価とし、5,4,3,2,1 とします。
また、生徒の人数は 30,000 人以下とします。
入力データのファイル名は data07.csv とします。

入力
生徒番号,成績(整数;半角カンマ区切り)：：

出力
成績 5 の人数 成績 4 の人数 成績 3 の人数 成績 2 の人数 成績 1 の人数(整数;半角空白区切り)

入力例
1,4
2,1
3,3
4,2
5,5
6,4
7,2
8,5
9,3
10,4
11,3
12,3

出力例
23421

7

ＰＣ甲子園２００５本選問題

問題０８

販売実績（１０点）（ファイル入力）

社員ごとの販売単価と売上数量を記録したファイルがあります。社員番号、販売単価と売上数量をファイルから読み込み、売上金額が 1,000,000 円以上の社員の社員番号を入力した順番に従って出力して終了するプロ
グラムを作成してください。ただし、該当する社員がいない場合、”NA”と出力してください。社員は 40 人未満とし、社員番号はファイル内で重複しないものとします。また、販売単価は 10,000 円以下で、売上数量は 1,000 個
以下とします。
入力データのファイル名は data08.csv とします。

入力
社員番号,販売単価,売上数量(整数;半角カンマ区切り)：：

出力
社員番号(整数) または NA（半角英大文字）

入力例１
1001,2000,520
1002,1800,450
1003,1600,625

出力例１
1001
1003

入力例２
2001,1900,400
2002,1700,500

出力例２
NA

8

ＰＣ甲子園２００５本選問題

問題０９

会津ＰＲ（１０点）（ファイル入力）会津を世界にＰＲするための英文によるパンフレットが作成されました。そのパンフレットを見てみると、藩主の保科正之（ほしなまさゆき）の姓の表記が”Hoshina“ではなく”Hoshino“となっていました。そこであなたは”Hoshino“を”Hoshina“に変換する作業を任されました。英文をファイルから読み込み、そこに含まれるすべての”Hoshino”を”Hoshina”に置き換え、変換後の英文を出力して終了するプログラムを作成してください。ただし、英文は 1000 文字以下とします。
入力データのファイル名は data09.txt とします。

入力
英文（半角英数字・記号）

出力”Hoshino”を”Hoshina”に変換した英文（半角）入力例１
Masayuki Hoshino was the grandson of Ieyasu Tokugawa.

出力例１
Masayuki Hoshina was the grandson of Ieyasu Tokugawa.

入力例２
Masayuki hoshino invited pottery makers to Hongo to start making pottery.

出力例２
Masayuki hoshino invited pottery makers to Hongo to start making pottery.

入力例３
In 1643, MasayukiHoshino, the brother of Iemitsu Tokugawa, moved from Yamagata to Aizu.

出力例３
In 1643, MasayukiHoshina, the brother of Iemitsu Tokugawa, moved from Yamagata to Aizu.

9

ＰＣ甲子園２００５本選問題

問題１０

縦横計算（１６点）（ファイル入力）

以下の表のように、与えられた表の縦・横の値の合計を、それぞれの行・列で求め出力して終了するプログラ
ムを作成してください。ただし、縦・横のデータ数は 10 個未満とし、それぞれの数字は 100 以下の整数とします。
出力は右詰め 5 桁で出力してください。
入力データのファイル名は data10.csv とします。

52
86
45
16

96
22
78
86

15
35
54
74

20
45
36
55

→

52
86
45
16

96
22
78
86

15
35
54
74

20
45
36
55

183
188
213
231

199

282

178

156

815

入力
表の 1 行目（整数;半角カンマ区切り）
表の 2 行目（整数;半角カンマ区切り）：：

出力
入力データに縦と横の合計のデータを付加した表（整数;半角右詰め 5 桁）

入力例
52,96,15,20
86,22,35,45
45,78,54,36
16,86,74,55

出力例
52

96

15

20 1838622

35

45 1884578

54

36 21316

86

74

55 231

199 282 178 156 815

10

ＰＣ甲子園２００５本選問題

問題１１

野球シミュレーション（１６点）

１／２ （ファイル入力）

野球の好きな一郎くんは、試合の経過にしたがって発生したイベントを入力すると、そのイニングの得点を表示する野球シミュレーションを作成することにしました。発生するイベントをシングルヒット、ホームラン、アウトの 3
種類に絞り、次の通りに考えることにしました。
○シングルヒット
・新たに 1 塁に走者が出ます。
・1 塁にいた走者は 2 塁に、2 塁にいた走者は 3 塁に進みます。
・3 塁に走者がいた場合、その走者は本塁にかえり塁上から消えます。
そして、得点に１点が加算されます。
○ホームラン
・塁上にいた走者すべてが本塁にかえり塁上から消えます。
・塁上にいた走者の数＋１が得点に加算されます。
○アウト・アウトカウントが 1 つ加算されます。
・塁上の走者の状態と得点は変化しません。
・アウトカウントが 3 つになった時点でイニングは終了します。
一郎くんはこれらの発生したイベントをそれぞれ HIT、HOMERUN、OUT で表すことにし、作成することとしました。
野球の試合経過を表すイベントデータを入力ファイルから読み込み、そのイニングに入った得点を出力して終了するプログラムを作成してください。ただし、イベントは 30 個以下とします。
入力データのファイル名は data11.txt とします。

入力
１イニングに発生したイベントを表す文字列（半角）出力
そのイニングに入った得点（整数）11

ＰＣ甲子園２００５本選問題

問題１１

野球シミュレーション（１６点）

２／２ （ファイル入力）

入力例１
HIT
OUT
HOMERUNHITHITHOMERUN
HIT
OUT
HIT
HIT
HIT
HIT
OUT

出力例１
7

入力例２
HIT
HIT
OUT
HIT
OUT
OUT

出力例２
0

12

ＰＣ甲子園２００５本選問題

問題１２

不思議なタイル（１６点）

１／２ （ファイル入力）

ある屋敷に不思議な部屋がありました。その部屋の床には次の 5 種類のタイルが、縦に 10 枚、横に 10 枚、合計 100 枚が敷き詰められています。
・東向きの矢印が書かれたタイル
・西向きの矢印が書かれたタイル
・南向きの矢印が書かれたタイル
・北向きの矢印が書かれたタイル
・何も書かれていないタイル
矢印の書かれたタイルの上に人が乗ると、不思議な力が働いて、矢印が指す方向の隣のタイルに自動的に移動します。移動先のタイルにも矢印が書かれていると、さらにその矢印の指す方向に自動的に移動します。何も書かれていないタイルの上に人が乗っても、人は移動しません。つまり、いったん矢印の書かれたタイルに乗ると、何も書かれてないタイルに到着するまで自動的に移動することができるのです。部屋の入り口は北西の角にあります。部屋の状態を表す文字列をファイルから読み込み、不思議な力によって移動した結果、最後に到着するタイルの位置を出力して終了するプログラムを作成してください。
10 行 10 列からなる入力データは部屋を真上から見たときのタイルの状態を表しており、上、下、左、右が部屋の北、南、西、東にあたります。左上のタイルの座標は X 座標、Y 座標ともに 0 とし、X 座標は左から右に 0 から
9、Y 座標は上から下に 0 から 9 とします。
たとえば以下のようなデータが与えられます。
>>>v..>>>v...v..^..v...>>>^..v.........v.v<<<<...v.v...^...v.v...^<<<<.v........
.v...^....
.>>>>^....
入力データ中の各文字が示す意味は次のとおりです。入力データの文字列には、これら 5 種類の文字と改行以外は含まれません。
'>' （大なり記号）： 東向きの矢印が書かれたタイル'<' （小なり記号）： 西向きの矢印が書かれたタイル'^' （べき記号） ： 北向きの矢印が書かれたタイル'v' （小文字ブイ）： 南向きの矢印が書かれたタイル'.' （ピリオド）： 何も書かれていないタイル

タイルの配置によっては、人が同じタイルの列をぐるぐる循環してしまったり、2 枚のタイルの間で行ったり来た
りしてしまい、どこにも到着しない場合があります。そのような入力が与えられた場合には、LOOP という文字を出力してください。なお、タイルの矢印は、移動によって部屋の外に出てしまう方向を向いていることはありません。
入力データのファイル名は data12.txt とします。
13

ＰＣ甲子園２００５本選問題

問題１２

不思議なタイル（１６点）

２／２ （ファイル入力）

入力
タイルの状態を示す 1 行 10 文字、10 行からなる文字列（半角）出力
最後に到着するタイルの座標 X Y（整数;半角空白区切り）
または、
LOOP（半角英大文字）

入力例１>>>v..>>>v...v..^..v>>>>>>^..v.........v.v<<<<...v.v.v.^...v.v.v.^<<<<.v.v.....v.v...^...v.>>>>^....

出力例１
5 7

入力例２
>>>>>>>>>v.........v.........v>>>>v....v^...v....v^...v....v^...v....v^...v....v^...v....v^<<<<<<<<<

出力例２
LOOP
14

ＰＣ甲子園２００５本選問題

問題１３

本の索引（１６点）（ファイル入力）

本の最後には索引が設けられています。本の中から抽出された「語句」と「ページ番号」の組をファイルから読み取り、本の索引として「語句」とその語句が表れる「ページ番号のリスト」を出力して終了するプログラムを作成して下さい。ただし、1つの語句の長さは30文字以内とし、ページ番号は1,000以下とします。ファイルに含まれる語句とページ番号の組は100以下とし、1つの語句は同じページ番号に複数回現れないものとします。また、出力に関しては、語句の順番はアルファベット順とし、ページ番号は小さい順（昇順）とします。
入力データのファイル名はdata13.csvとします。

入力
語句,ページ番号（半角英小文字，整数；半角カンマ区切り）

:
:

出力
語句
ページ番号の列（整数;半角空白区切り）
語句
ページ番号の列（整数;半角空白区切り）
：
：

入力例

出力例

style,12

document

even,25

13

introduction,3

easy

easy,99style,7even

document,13

18 25

style,21

introduction

even,183style
7 12 21

15

ＰＣ甲子園２００５本選問題

問題１４

そば粉の割引（１６点）（キーボード入力）

会津はおいしいそばの産地です。おいしいそば粉が簡単に手に入るので、そば粉を買って自宅でそばを打
つ人も少なくありません。あなたも休日にそば打ちを楽しんでいる一人です。ある日、あなたは近くにあるＡ店、Ｂ店、Ｃ店にそば粉を買いに行きました。それぞれの店での1袋あたりの量、単価は下表に示すようになっています。また、まとめて買うと割引かれます。
Ａ店

Ｂ店

Ｃ店

1袋あたりの量

200g

300g

500g

1袋の単価（定価）

380円

550円

850円

割引が適用される単位

5袋毎

4袋毎

3袋毎

割引率

20％引き

15％引き

12％引き

なお、割引が適用される単位を超えて買った場合、割引が適用される単位に達しない分は割引かれません。
たとえば、A店で12袋買ったときは、10袋分が20％引きで残りの2袋は定価になります。したがって、購入金額は（380×10） × 0.8 ＋ 380 × 2 = 3,800円になります。
購入したいそば粉の量が与えられたとき、一番安くなる金額を出力して終了するプログラムを作成してください。
ただし、入力はグラム単位で500gから5kg（5000g）まで100g刻みとします。

入力必要なそば粉の量（整数）出力
そば粉を購入する最低金額（整数）

入力例１
500

出力例１
850

入力例２
2200

出力例２
3420

16

ＰＣ甲子園２００５本選問題

問題１５

チーズを運べ（１６点）（ファイル入力）

ジェリーは小さなネズミです。ジェリーは猫のトムにいつも追いかけられています。ジェリーはトムに注意しながら、大好物のチーズ（直方体）を家まで運ぼうとしています。しかし、家には円形の入口がいくつもあり、それぞれ大きさが異なります。入口毎にその入口にチーズが運び込めるかどうかを判定し、入り口に接することなく運び込める場合には”OK”、それ以外の場合は”NA”と出力して終了するプログラムを作成してください。ただし、入口は 20 個未満とします。
入力データのファイル名は data15.txt とします。

入力
1 行目は、チーズのサイズ（縦、横、高さ）（整数;半角カンマ区切り）
2 行目は、入口の個数 n（整数）
3 行目からは、1 番目の入口の半径（整数）
2 番目の入口の半径（整数）::n 番目の入口の半径（整数）出力
1 行目は、1 番目の入口の判定結果、OK または NA（半角英大文字）
2 行目は、2 番目の入口の判定結果、OK または NA（半角英大文字）::

入力例
10,6,8
5
4
8
6
2
5

出力例
NA
OK
OK
NA
NA

17

ＰＣ甲子園２００５本選問題

問題１６

出現頻度操作（１６点）（ファイル入力）

有限数列の変換操作に出現頻度操作というものがあります。数列 S ={ s1 , s 2 ,… s n } の変換結果は同じ長さの数列となります。その結果を C= { c1 , c 2 , …, c n } とすると、 c i は数列 S における s i の個数を表します。
例えば S ={3,4,1,5,9,2,6,5,3}ならば C ={2,1,1,2,1,1,1,2,2}となります。さらにこの数列 C に出現頻度操作を行うと P ={4,5,5,4,5,5,5,4,4}を得ます。この数列は出現頻度操作で変わることがありません。
このような数列 P を数列 S の不動点と呼びます。どのような数列に対しても出現頻度操作を繰り返せば、その不動点を求めることが出来るということが知られています。
下の例は出現頻度操作の手順を示したものです。1 行目を数列 S 、2 行目を数列 C 、最終行を数列 P とします。数列 S の最初の要素( s1 =2)と同じ数は 3 個あるので数列 C の最初の要素 c1 は 3、次の要素( s 2 =7)と同じ数
は 2 個あるので c 2 =2、といった具合に個数を数え c i を求めていきます。

数列の長さ n と数列 S を入力し、不動点の数列 P および、P を得るために実行した出現頻度操作の最小の回数を出力して終了するプログラムを作成してください。
ただし、n は 12 以下とします。
入力データのファイル名は data16.csv とします。

入力
1 行目は数列の長さ n（整数）2 行目は数列 S の要素 s1 , s 2 ......... s n (n 個の整数;半角カンマ区切り)

出力
出現頻度操作の最小の実行回数（整数）
対応する不動点の数列 P の要素 p1 p 2 …… p n (n 個の整数；半角空白区切り)

入力例

出力例

10

3

4,5,1,1,4,5,12,3,5,46644664466

18

ＰＣ甲子園２００５本選問題

問題１７

かしこい電卓（１６点）（キーボード入力）

式を入力すると、その値を計算して出力し終了するプログラムを作成してください。
・ 式は数値、演算記号、かっこからなり、=で終わります。
・ 数値は常に１桁の数字とします。
・ 演算記号は+,-,*,/ の4つで、それぞれ、加算、減算、乗算、除算を表します。
・ 四則演算の優先順位は通常の計算と同じとします。すなわち乗算・除算は加算・減算よりも優先され、同じ優先順位なら左から計算が行われます。
・ 0での割り算は発生しないものとします。
・ 演算はすべて整数で行い、小数点以下切捨てとします。
・ 入力される式の長さは40文字以内とします。

入力
数式（半角）

出力
計算結果（整数）

入力例１
4-2*3=

出力例１
-2

入力例２
4*(2+3)=

出力例２
20

19

ＰＣ甲子園２００５本選問題

問題１８

覆面算（１６点）（キーボード入力）

数式の一部を隠してしまって、隠した数字を探す問題を覆面算といいます。今回は、数式の中のある数字のいくつかを X で隠してしまった式を扱います。以下の数式を入力して、結果を出力するプログラムを作成してください。
数式・ 「数字列 + 数字列 = 数字列」の形で、１行の単純な足し算式です。
・ 「数字列」は、数字 0 から 9 と文字 X の並びです。
・ 「数字列」は、8 桁以下の整数を表すものとします。
・ 2桁以上の「数字列」の左端の数字は 0 ではないものとします。
・X は、数式全体の中で必ず１つ以上含まれます。

結果
・

覆面算の答えです。数式が成り立つ様な X の値で 0 ～ 9 のどれか１つです。2つ以上の答
えはないものとします。

・

答えがない場合、結果は“NA”としてください。

入力
X を１つ以上含む足し算式（空白を含まない１行 126 文字以内の文字列（半角））出力
覆面算の結果。数字 0 ～ 9 または NA（半角英大文字）

入力例１

入力例３

123+4X6=X79

XX22+89=X2XX

出力例１

出力例３

5

1

入力例２
12X+4X6=X79

出力例２
NA

20

ＰＣ甲子園２００５本選問題

問題１９
博

博士の忘れられない符号（１６点）

１／２ （ファイル入力）

士 : ?D-C'KOPUA

ピーター : どうしたんですか、デビッド博士？ わけのわからないことを叫ぶのにはもう慣れましたが、今日は文章にすらなっていませんよ。
博

士 : ほれ。
符号
00000

文字
A

符号
01000

文字
I

符号
10000

文字
Q

符号
11000

文字
Y

00001

B

01001

J

10001

R

11001

Z

00010

C

01010

K

10010

S

11010

00011

D

01011

L

10011

T

11011

(空白)
.

00100

E

01100

M

10100

U

11100

,

00101

F

01101

N

10101

V

11101

-

00110

G

01110

O

10110

W

11110

00111

H

01111

P

10111

X

11111

’
?

ピーター : なんですか? この表は……ああ、予選の問題にこんなのがありました。表を使って文字を置き換えると文字数が減るんですよね。まさか予選と本選で同じ問題を出して手を抜こうって気じゃないでしょうね。
博士 : 逆じゃよ。

ピーター : 逆? なるほど、今度は短くした文字列を元に戻そうって問題ですか。ということは「?D-C'KOPUA」の文字を、この表を使って「文字」から「符号」に置きかえるんですね……できましたよ。
11111 00011 11101 00010 11110 01010 01110 01111 10100 00000
博

士 : うむ。次はこれじゃ。
文字
（空白）

符号
101

文字
C

符号
0101

文字
K

符号
0110

文字
S

符号
00110

’
,

000000

D

0001

L

00100

T

00111

000011

E

110

M10011001

U

10011100-

10010001

F

01001

N

10011110

V

10011101.

010001

G

10011011

O

00101

W

000010?

000001

H

010000

P

111

X

10010010

A

100101

I

0111

Q

10011111

Y

10010011

B

10011010

J

10011000

R

1000

Z

10010000ピーター : そうそう、こんな表もありましたね。これを逆に使うんだから「符号」から「文字」に置き換えればいいんですね。でも、最初は「11111」ですが表にありませんよ?
博士 : そういうときは、もっと短くするか、後ろとつなげるかしてみるのだよ。

ピ ー タ ー : じゃあ短くして……あ、「111」ならあります。じゃあ最初は「P」ですね。そうすると残りは「11」ですが、これはぴったり合うのがないから次の「00011」から 1 文字借りて「110」にすればいいんですね。
博

士 : そうそう。つまり「E」だね。

ピ ー タ ー : それで残るのが「0011」なので、これも次から借りて「00111」にして「T」と……。全部できました。最後の「0000」は捨てちゃえばいいんですよね?
21

ＰＣ甲子園２００５本選問題

問題１９

博士の忘れられない符号（１６点）
P

E

T

E

R 空白 PO

T

２／２ （ファイル入力）

T

E

R

11111 00011 11101 00010 11110 01010 01110 01111 10100 00000
博

士 : そうじゃ、よろしい。次はこれじゃ。
?D-C'?-C'-LMGZN?FNJKN- WEYN?P'QMRWLPZLKKTPOVRGDI

博

士 : さらにこれじゃ。
?P'QNPY?IXX?IXXK.BI -G?R'RPP'RPOVWDMW?SWUVG'-LCMGQ

博

士 : 仕上げにこうじゃ。
?P'QMDUEQ GADKOQ ?SWUVG'-LCMG?X?IGX,PUL.?UL.VNQQI

ピ ー タ ー : しっかし面倒だなあ。博士、今度は自分でプログラムを作って下さいよ。
ということで、博士のかわりに、上の文章を置き換えるプログラムを作成してください。
入力データのファイル名は data19.txt とします。

入力
文字列１行（半角）出力
変換後の文字列（半角）入力例?D-C'KOPUA

出力例
PETER POTTER

22

ＰＣ甲子園２００５本選問題

問題２０

ミルクのお店（１６点）

１／２ （ファイル入力）

鈴木さんは会津地域に新しく搾りたてミルクの移動販売のお店を開きました。その日買い求めに来るお客さん
は全員持ち帰るためのボトルを持って既にお店に並んでいて、それ以上増えないものとします。お客さんはそれぞれ１回だけしか注文しません。タンクの蛇口が一つしかないので、一人ずつ順番に販売しなければなりません。
そこで、鈴木さんはなるべく並んでいるお客さんの待ち時間を少なくしたいと考えています。
お客さんの人数とお客さんが牛乳を注ぎきるのに要する時間が入力として与えられます。あなたはお客さんの「一人一人の待ち時間の合計」（以下「待ち時間の合計」とする）を最小にするための注文の順序を鈴木さんに代わって調べ、そのときの「待ち時間の合計」を出力して終了するプログラムを作成してください。ただし、お客さんは 1,000 人以下で 1 人あたりに要する時間は 10 分以下とします。
入力データのファイル名は data20.txt とします。
例えば、お客さんの人数が 5 人で、各お客さんが要する時間が順に 2，6，4，3，9 分の場合、そのままの順序だと「待ち時間の合計」は 37 分になります。次の例では、最初の列の順の 2 人目と 3 人目を入れ替えています。
この場合、「待ち時間の合計」は 35 分になります。最適な順序だと 31 分で済みます。
待ち時間
1 人目 2 分

0分

2 人目 6 分

2分

3 人目 4 分

8分

4 人目 3 分

12 分

5 人目 9 分

15 分
37 分 ← 「待ち時間の合計」● 2 人目と 3 人目を入れ替えた例
待ち時間
1 人目 2 分

0分

2 人目 4 分

2分

3 人目 6 分

6分

4 人目 3 分

12 分

5 人目 9 分

15 分
35 分 ← 「待ち時間の合計」

入力
１行目

お客さんの人数 n(整数)

２行目

１人目のお客さんが要する時間（整数）

３行目

２人目のお客さんが要する時間（整数）：n+1 行目：n 人目のお客さんが要する時間（整数）23ＰＣ甲子園２００５本選問題

問題２０

ミルクのお店（１６点）

２／２ （ファイル入力）

出力
待ち時間の合計（整数）

入力例
5
2
6
4
3
9

出力例
31

24

ＰＣ甲子園２００５本選問題

問題２１

循環小数（１６点）

１／２ （ファイル入力）

2 つの正の整数 p, q を入力し、 p / q を小数として正確に表現することを考えます。（ただし、0< p < q <106とします。）
このとき、結果は
・ 有限の桁で正確に表現できる。
・ ある桁の範囲を繰り返す循環小数となる。
のいずれかとなります。筆算と同じ手順で１桁ずつ小数部を求めていくと、・ 割り切れた（余りが 0 になった）なら、そこまでの桁で正確に表現できた。
・ １度出てきた余りが、再び現れたなら、循環した。
と区別できます。
カンマで区切られた 2 つの整数 p, q を入力すると、 p / q を小数で表した時の、小数部を出力して終了するプ
ログラムを作成してください。
ただし、・ 結果が有限の桁で正確に表現できる時は、数値だけを１行に出力してください。
・ 結果が循環小数になる時は次のように 2 行に出力してください。
-最初の行に、循環する部分までの数字を出力してください。
-次の行には、循環しない部分の下には空白を出力し、循環する部分の下には「＾」を出力
してください。
・ いずれの場合も数字列は 80 文字を超えることはないものとします。
入力データのファイル名は data21.csv とします。

入力
1 行目は 1 つ目のデータ p, q （整数;半角カンマ区切り）
2 行目は 2 つ目のデータ p, q （整数;半角カンマ区切り）：：

出力
1 つ目のデータの結果
循環しない小数の場合：数値の小数部分（この場合 1 行）
循 環 小 数 の 場 合：循環するまでの数字と循環する部分を示す記号「＾」（この場合 2 行）
2 つ目のデータの結果
：
：

入力例
1,12
10000,32768
1,11100
1,459550
25

ＰＣ甲子園２００５本選問題

問題２１

循環小数（１６点）

２／２ （ファイル入力）

出力例
083
^
30517578125
00009
^^^
00000217604178^^^^^^^^^^^^

26

ＰＣ甲子園２００５本選問題

問題２２

ばえ

電子蝿（１６点）（ファイル入力）ある計算機学者が電子空間に棲息する電子蝿という奇妙な生命体を見つけました。電子蝿の行動を観察しているうちに、この空間の （x, y, z）地点にいる電子蝿は、次に以下の規則で示される （x', y', z'）に移動することが分かりました。

⎧ x' = a1 x mod m1⎪⎨ y ' = a 2 y mod m2⎪ z ' = a z mod m
3
3⎩
ただし、a1, m1, a2, m2, a3, m3は電子蝿の個体ごとに定まる正の整数です。A mod Bは正の整数Aを正の整数Bで割ったときの余りです。
さらに観察をすると、ある種の電子蝿は（1,1,1）に置いてからしばらくすると、必ず（1,1,1）に戻ってくることがわ
かりました。このような蝿を戻り蝿と名付けました 1 。戻り蝿のデータを入力とし、（1,1,1）に戻ってくる最小の移動
回数（＞0）を出力して終了するプログラムを作成してください。なお 1< a1,m1,a2,m2,a3,m3 <215とします。
入力データのファイル名は data22.csv とします。

入力
a1,m1,a2,m2,a3,m3（整数;半角カンマ区切り）

出力（1,1,1）に戻ってくる最小の移動回数（整数）入力例１2,5,3,7,6,13

出力例１
12

入力例２
517,1024,746,6561,4303,3125

出力例２116640000

1 a とm , a とm , a とm がそれぞれ互いに素(公約数が 1)である時に戻ります。
1
1 2
2
3
3

27

ＰＣ甲子園２００５本選問題

問題２３

宇宙船 UAZ アドバンス号（１６点）（ファイル入力）

恒星歴 2005.11.5。あなたは宇宙船 UAZ アドバンス号の艦長として敵の宇宙船と交戦しようとしています。
幸い敵の宇宙船はまだこちらに気付かずに静止しています。また、すでに敵の宇宙座標は判明しており強力な直線のビームを放つ「フェザー砲」は発射準備を完了しています。あとは、発射命令を出すばかりです。
ところが、１つだけ困ったことが判明しました。宇宙空間には、敵の設置したエネルギーバリアが存在しているのです。バリアは三角形をしており「フェザー砲」ビームをはね返してしまいます。また、ビームがバリアに当たれば敵に気付かれて逃げられてしまいます。事前に命中すると判定できなければ、発射命令は出せません。
そこで、UAZ アドバンス号、敵、バリアの位置の宇宙座標（３次元座標 x, y, z ）をファイルから入力して、「フェザー砲」がバリアをさけて敵に命中する場合は“HIT”、バリアに命中してはね返されてしまう場合“MISS”と出力して終了するプログラムを作成してください。
ただし、バリアはアドバンス号から 3 角形に見えるものだけが対象であり、線分につぶれて見えるものはないものとします。また、バリアは 3 角形の頂点を含む境界でも有効であり、ビームをはね返すものとします。
入力データのファイル名は data23.csv とします。

入力
1 行目は、宇宙船 UAZ アドバンス号の宇宙座標 （ x, y, z ）（実数、半角カンマ区切り）

2 行目は、敵宇宙船の宇宙座標 （ x, y, z ）（実数、半角カンマ区切り）

3 行目は、エネルギーバリアの頂点 1 の宇宙座標 （ x, y, z ）（実数、半角カンマ区切り）

4 行目は、エネルギーバリアの頂点 2 の宇宙座標 （ x, y, z ）（実数、半角カンマ区切り）

5 行目は、エネルギーバリアの頂点 3 の宇宙座標 （ x, y, z ）（実数、半角カンマ区切り）

出力
HIT または MISS（半角英大文字）

入力例１

入力例２

-1.0,0.0,0.0-1.0,0.6,0.6

1.0,0.0,0.0

1.0,0.6,0.6

0.0,1.0,0.0

0.0,1.0,0.0

0.0,1.0,1.0

0.0,1.0,1.0

0.0,0.0,1.0

0.0,0.0,1.0

出力例１

出力例２

HIT

MISS

28

ＰＣ甲子園２００５本選問題

問題２４長方形探索（１６点）

１／２ （ファイル入力）

縦に 10 行、横に 10 列並べられた、合計 100 のマス目があります。いくつかのマス目には印がついています。
各マス目の印の状態をファイルから読み込み、印のついていないマス目だけからなる最大の長方形の面積を出力して終了するプログラムを作成してください。
入力データは 1 行１0 文字から構成され、10 行が与えられます。たとえば以下のようなデータが与えられます。
..*....**.
..........
**....***.
....*.....
..*.......
...**.....
.*.*......
..........
..**......
.*..*.....
入力データの一行が、一行のマス目を表現します。入力データの文字列のうち、.（ピリオド）は印のついていな
いマス目、*（アスタリスク）は印のついているマス目を示しています。入力データの文字列には、ピリオド、アスタ
リスク、改行以外の文字は含まれません。
上記の例では、下図の 0 で示される長方形が最大となります。
..*....**.
..........
**....***.
....*00000..*..00000...**00000.*.*.00000.....00000..**.00000.*..*00000
よって、35 と出力すれば正解になります。
なお、すべてのマス目に印がついている場合には、0 を出力してください。
入力データのファイル名は data24.txt とします。

入力
マス目の状態を表現する、ピリオドとアスタリスクからなる文字列（半角）出力
最大の長方形の面積（整数）29ＰＣ甲子園２００５本選問題

問題２４長方形探索（１６点）

２／２ （ファイル入力）

入力例１...*....**..........
**....**..
........*.
..*.......
**........
.*........
..........
....*..***.*....*...

出力例１
28

入力例２
..*....*..
.*.*...*..
*****..*..
*...*..*..
*...*..*..
..........
****.*...*..*..*...*.*...*...*****..***.

出力例２
12

30

ＰＣ甲子園２００５本選問題

問題２５

ほ う び

大工の褒美（４５点）

１／２ （ファイル入力）

ある日、殿様は一人の大工に、「台風や地震が来たときに町人が避難できる、頑丈で大きな建物を造りなさい。」と命じました。しかし、その頑丈で大きな建物を完成させるには、大きな太い柱が必要です。町にそんな大きな柱はありません。そこで、大工は遠くの山里まで大きな柱を調達しに行くことになりました。大工の褒美は、殿様から受け取ったお金から柱の代金と運搬料を差し引いた余りです。下の地図のように、山里に行くには、いろいろな町を通るたくさんの街道があり、2 つの町をつなぐ街道はそれぞれ運搬料が違います。大工の褒美を最大にするにはどのように街道をたどり調達すればよいでしょうか。
最大となる大工の褒美を出力して終了するプログラムを作成してください。ただし、町の数を n とすれば、n は 20以下であり、各町は 1 から n までの整数で識別されます。2 つの町を直接つなぐ街道は 2 本以上ありません。
入力データのファイル名は data25.txt とします。

1

4

柱のある山里

2

4
4

1

4

2

3

3

2

1

6

1
2

2
1
2
3

2

5

2

出発する町

※ 矢印上の数字は、その方向に運ぶ運搬料を示します。

31

ＰＣ甲子園２００５本選問題

問題２５

ほ う び

大工の褒美（４５点）

２／２ （ファイル入力）

入力
1 行目は、町の総数 n（n<20）
2 行目は、街道の総数 m
3 行目は、1 番目の街道の情報 a1 , b1 , c1 , d 1 （整数;半角カンマ区切り）
a1 , b1 ：この街道がつないでいる町の番号c1： a1 から b1 へ運ぶための運搬料

d1： b1 から a1 へ運ぶための運搬料

4 行目は、2 番目の街道の情報 a 2 , b2 , c 2 , d 2 （整数;半角カンマ区切り）::
最終行は、 x1 , x 2 , y1 , y 2 （整数;半角カンマ区切り）
x1 ：大工の出発する町の番号
x 2 ：柱のある山里の番号
y1 ：殿様から大工が受け取ったお金
y 2 ：柱の代金

出力
大工の褒美（整数）

入力例
68
1,2,2,2
1,3,4,3
1,4,4,2
2,5,3,2
3,4,4,2
3,6,1,2
4,6,1,1
5,6,1,2
2,4,50,30

出力例
11

32

ＰＣ甲子園２００５本選問題

問題２６

財産分け（４５点）

１／２ （ファイル入力）

タナカ氏が 100 アールの果樹園を残して亡くなりました。果樹園は東西南北方向に 10×10 の区画に分けられ、区画ごとにリンゴ、カキ、ミカンが植えられています。タナカ氏はこんな遺言を残していました。
果樹園は区画単位でできるだけ多くの血縁者に分けること。ただし、ある区画の東西南北どれかの方向にとなりあう区画に同じ種類の果物が植えられていた場合は、区画の境界が分からないのでそれらは 1 つの大きな区画として扱うこと。
例えば次のような 10×3 の区画であれば（リはリンゴ、カはカキ、ミはミカンを表す）
カ

カ

カ

カ

ミ

ミ

ミ

ミ

ミ

リ

リ

カ

リ

リ

リ

リ

カ

ミ

カ

ミ

リ

カ

カ

ミ

ミ

ミ

リ

リ

リ

ミ

同じ樹がある区画の間の境界を消すと次のようになり、
カ

カ

カ

カ

ミ

ミ

ミ

ミ

ミ

リ

リ

カ

リ

リ

リ

リ

カ

ミ

カ

ミ

リ

カ

カ

ミ

ミ

ミ

リ

リ

リ

ミ

結局 10 個の区画、つまり 10 人で分けられることになります。
雪が降って区画の境界が見えなくなる前に分配を終えなくてはなりません。あなたの仕事は果樹園の地図をもとに分配する区画の数を決めることです。ということで、ファイルから果樹園の地図を読み込み、分配を受けられる血縁者の人数を出力して終了するプログラムを作成してください。ただし、果樹園の地図は 10 文字×10 行の文字列として与えられます。この文字列には、リンゴを表す@、カキを表す#、ミカンを表す*、の 3 文字しか使われていません。
入力データのファイル名は data26.txt とします。

入力
文字列 10 行（半角）出力
分配を受ける人数（整数）33

ＰＣ甲子園２００５本選問題

問題２６

財産分け（４５点）

２／２ （ファイル入力）

入力例####*****@@#@@@@#*#*@##***@@@*#****#*@**##@*#@@*##*@@@@*@@@#***#@*@##**@@@*@@##@*@*#*@##**@****#@@#@

出力例
33

34

ＰＣ甲子園２００５本選問題

問題２７

太郎くんの執念（４５点）

１／２ （ファイル入力）

まんじゅう好きの太郎くんの家でたいへんな事件がおきました。和室の仏壇に供えてあった３つのまんじゅうのうち１つが無くなっていたのです。いつかはおやつにいただこうと狙っていた太郎くんが犯人を見つけるため捜査を始めると、その日、和室に入った人が何人もいることが分かりました。そこで、これらの容疑者が部屋に入った順序を調べるため、全員に次のような形式の証言をしてもらうことにました。
容疑者 A の証言 「私は容疑者 B より先に部屋に入った。」
容疑者の一人（？）は三毛猫のタマなので証言はできませんが、幸運にも最後に部屋に入ったところを太郎くんは見ていました。
太郎くんはこれらの証言から、部屋に入った順番を推測して捜査に役立てることにしました。
例えば、6 人の容疑者がいてタマを容疑者 2 とした場合、以下のような証言が得られたとします。
容疑者 5 の証言 「私は 2 より先に部屋に入った。」
容疑者 1 の証言 「私は 4 より先に部屋に入った。」
容疑者 3 の証言 「私は 5 より先に部屋に入った。」
容疑者 4 の証言 「私は 2 より先に部屋に入った。」
容疑者 1 の証言 「私は 6 より先に部屋に入った。」
容疑者 6 の証言 「私は 4 より先に部屋に入った。」
容疑者 3 の証言 「私は 4 より先に部屋に入った。」
この証言をつなぎ合わせると、部屋に入った順序は・ 3 → 5 → 1 → 6 → 4 → 2
・ 1 → 6 → 3 → 4 → 5 → 2
・ 3 → 1 → 6 → 5 → 4 → 2など、何通りかの可能性に絞り込むことができます。
というわけで、タマ以外の容疑者全員の証言から、部屋に入った順番を推測し、可能性のある順番の 1 つを出力して終了するプログラムを作成してください。ただし、容疑者の人数を m とすると m は 20 以下であり、容疑者は 1 から m までの整数で識別されます。証言の数は 100 以下とします。また、複数の証言をする容疑者がいるかもしれませんが、どの証言も真実であり矛盾していないものとします。
入力データのファイル名は、data27.csv とします。

入力
1 行目は、容疑者の人数 m（整数）
2 行目は、証言の数 n（整数）
3 行目からは、証言の内容 x,y（整数カンマ区切り）
x,y:容疑者 x（私）は容疑者 y より先に入った。
::
n+2 行目は、n 番目の証言

35

ＰＣ甲子園２００５本選問題

問題２７

太郎くんの執念（４５点）

２／２ （ファイル入力）

出力
最初に部屋に入った容疑者の番号（整数）
2 番目に部屋に入った容疑者の番号（整数）::m 番目に部屋に入った容疑者の番号（整数）

入力例
6
7
5,2
1,4
3,5
4,2
1,6
6,4
3,4

出力例
3
5
1
6
4
2

36

ＰＣ甲子園２００５本選問題

問題２８

ケーキ屋（４５点）（ファイル入力）

ケーキ屋さんが、まちまちな大きさのロールケーキをたくさん作りました。あなたは、このケーキを箱に並べる仕事を任されました。ロールケーキはとてもやわらかいので、他のロールケーキが上に乗るとつぶれてしまいます。
ですから、全てのロールケーキは必ず箱の底面に接しているように並べなければなりません。並べ替えると必要な幅も変わります。ファイルから、n 個のロールケーキの半径 r1 , r2 ・・・・・・・・ rn と箱の長さを読み込み、それぞれについて、箱の中にうまく収まるかどうか判定し、並べる順番を工夫すると箱に入る場合は”OK”、どう並べても入らない場合には”NA”を出力して終了するプログラムを作成してください。ロールケーキの断面は円であり、箱の壁の高さは十分に高いものとします。
ただし、ロールケーキの半径は 3 以上 10 以下の整数とします。つまり、ケーキの半径に極端な差はなく、図（b）のように大きなケーキの間に小さなケーキがはまり込んでしまうことはありません。また、ケーキの個数 n は 12 個
以下とします。
入力データのファイル名は data28.txt とします。

・・・・・・・・・・
箱の長さ
図（a）

・・・・・・
・・・・・

図（b）

入力
1 つ目のデータの箱の長さ,１～n 個目のロールケーキの半径（整数;半角カンマ区切り）
2 つ目のデータの箱の長さ,１～n 個目のロールケーキの半径（整数;半角カンマ区切り）：：

出力
OK または NA（半角英大文字）

入力例

出力例

30,4,5,6

OK

30,5,5,5

OK

50,3,3,3,10,10OK

49,3,3,3,10,10

NA
37

ＰＣ甲子園２００５本選問題

問題２９

７パズル（４５点）

１／２ （ファイル入力）

7パズルは8つの正方形のカードとこれらのカードがぴたりと収まる枠を使って行います。それぞれのカードは互いに区別できるように、0,1,2....７と番号がつけられています。枠には、縦に2個、横に4個のカードを並べることができます。
7パズルを始めるときには、まず枠にすべてのカードを入れます。枠のなかで0のカードだけは、上下左右に隣接するカードと位置を交換することができます。たとえば、枠の状態が図（ a ）のときに、0のカードの右に隣接した、7のカードと位置を交換すれば、図（ b ）の状態になります。あるいは、図（ a ）の状態から0のカードの下に隣接した2のカードと位置を交換すれば図（ c ）の状態になります。カードの位置を入れ替える操作はこれだけが許されます。図（ a ）の状態で0のカードと上下左右に隣接するカードは7と2のカードだけなので、これ以外の位置の入れ替えは許されません。
ゲームの目的は、カードをきれいに整列して図（ d ）の状態にすることです。最初の状態を入力とし、カードをきれいに整列するまでに、必要な最小手数を出力して終了するプログラムを作成してください。ただし、入力されたカードの状態からは図（ d ）の状態に移ることは可能であるとします。
入力データとしては、1行に8つの数字が与えられます。これらは、最初の状態のカードの並びを表します。図（ a ）の数字表現は0,7,3,4,2,5,1,6に、図（ c ）は2,7,3,4,0,5,1,6となります。
入力データのファイル名はdata29.csvとします。

図（ a ） 0,7,3,4,2,5,1,6の場合

図（ b ） 7,0,3,4,2,5,1,6の場合

図（ c ） 2,7,3,4,0,5,1,6の場合

図（ d ） 0,1,2,3,4,5,6,7（最終状態）

入力
1つ目のパズルの状態（整数;カンマ区切り）
2つ目のパズルの状態（整数;カンマ区切り）::

38

ＰＣ甲子園２００５本選問題

問題２９

７パズル（４５点）

２／２ （ファイル入力）

出力
1つ目のパズルの状態から最終状態へ移行する最小手数（整数）
2つ目のパズルの状態から最終状態へ移行する最小手数（整数）::

入力例
0,1,2,3,4,5,6,7
1,0,2,3,4,5,6,7
7,6,5,4,3,2,1,0

出力例
0
1
28

39

ＰＣ甲子園２００５本選問題

問題３０

ぴょん吉の夏（４５点）

１／２ （ファイル入力）

会津大学には一面芝生で覆われた公園があり、日差しを遮る木や建物がありません。日差しの強い夏の日には、公園内に設置されたスプリンクラーが作動して芝生に散水しています。この公園にはカエルのぴょん吉が住
み着いています。ぴょん吉は暑いのが苦手で、日差しが強い夏の日には常にスプリンクラーの水に当たっていないと干からびて死んでしまいます。公園に設置されたスプリンクラーは、節水のため一度に一つだけ散水することになっているので、ぴょん吉はスプリンクラーの作動に合わせて移動しなくてはなりません。

0

1 2 3 4 5 6 7 8 9

0
1
2
3
4
5 4
6
7
8
9

3
2

10
1

(b) ぴょん吉のジャンプ範囲 1

5

9
8

6
7
(a) 公園の地図(c) スプリンクラーの散水範囲

公園は上図の(a)のとおりで、公園内の場所は縦横それぞれ 0～9 の座標で表し、黒い●がスプリンクラーで、その番号が作動する順番を表しています。これは一例で各スプリンクラーの場所と作動順序は日々変わります。
ぴょん吉は不器用なやつでして、移動するにも決まった距離をジャンプすることしかできません。ぴょん吉のジャンプできる範囲は上図(b)のとおりで、それ以外の場所に移動することはできません。しかも、一回のジャンプで相当体力を消耗するため、しばらく水に当たって休まなくてはなりません。スプリンクラーが散水できる範囲は上
図(c)のとおりで、スプリンクラー自身の座標も含みます。各スプリンクラーは一定時間散水すると停止し、すぐに次のスプリンクラーが作動を開始します。ぴょん吉はこの時に一回だけジャンプするものとし、次に散水が停止するまでジャンプしないものとします。また、公園の四方は灼熱のアスファルトで囲まれているので公園の外にでてしまうような方向にはジャンプしないものとします。
猛暑となったこの夏。果たしてぴょん吉は生き延びることができたのでしょうか？ファイルから、ある日のぴょん
吉の初期位置、スプリンクラーの位置と作動順序を読み込み、ぴょん吉が生き延びられる移動経路が存在している場合は”OK”、どう頑張っても死んでしまう場合は”NA”を出力して終了するプログラムを作成してください。ただし、スプリンクラーの数は最大 10 個とし、ぴょん吉は一番目のスプリンクラーの作動と同時に初期位置からジャ
ンプすることとします。
入力データのファイル名は data30.csv とします。

40

ＰＣ甲子園２００５本選問題

問題３０

ぴょん吉の夏（４５点）

２／２ （ファイル入力）

入力
1 行目はぴょん吉の初期位置の横座標、縦座標（整数;半角カンマ区切り）
2 行目は各スプリンクラー位置情報
1 番目の横座標、縦座標、２番目の横座標、縦座標、…（整数;半角カンマ区切り）

出力生存の場合は OK、そうでない場合は NA（半角英大文字）

入力例１
6,1
6,4,3,3,1,2,0,5,4,6,1,8,5,9,7,7,8,6,8,3

出力例１
OK

入力例２
6,1
6,4,3,3,1,2,0,5,4,6,1,8,5,9,7,7,8,6,9,0

出力例２
NA

41

ＰＣ甲子園２００５本選問題