A - 試験 (Exam)

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点: 100

問題文

JOI 君は情報の試験を 3 回受けた.試験の点数はすべて 0 以上 100 以下の整数である.

JOI 君の成績は 3 回の試験の点数のうち高い方から 2 つを足し合わせた合計によって決まる.

3 回の試験の点数 A, B, C が与えられたとき,3 回の試験の点数のうち高い方から 2 つを足し合わせた合計を出力するプログラムを作成せよ.

制約

  • 0 \leqq A \leqq 100
  • 0 \leqq B \leqq 100
  • 0 \leqq C \leqq 100
  • 入力はすべて整数である.

入力

入力は以下の形式で標準入力から与えられる.

A B C

出力

3 回の試験の点数のうち高い方から 2 つを足し合わせた合計を 1 行で出力せよ.


入力例 1

70 80 90

出力例 1

170

点数は高い順に 90, 80, 70 であるから,求める和は 90 + 80 = 170 である.


入力例 2

70 100 70

出力例 2

170

点数は高い順に 100, 70, 70 であるから,求める和は 100 + 70 = 170 である.


入力例 3

70 70 70

出力例 3

140
B - 文字列の反転 (Inversion of a String)

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点: 100

問題文

長さ N の文字列 S が与えられる.

SA 文字目から B 文字目までの文字の並びを逆にし,それ以外の文字はそのままにしたとき,どのような文字列ができるだろうか.ただし,S の先頭の文字が 1 文字目,末尾の文字が N 文字目である.

文字列 S と,2 つの整数 A, B が与えられたとき,S のうち A 文字目から B 文字目までの文字の並びを逆にしてできる文字列を出力するプログラムを作成せよ.

制約

  • 1 \leqq A \leqq B \leqq N \leqq 200
  • S は長さ N の文字列である.
  • S の各文字は英大文字または英小文字である.

入力

入力は以下の形式で標準入力から与えられる.

N A B
S

出力

S のうち A 文字目から B 文字目までの文字の並びを逆にしてできる文字列を 1 行で出力せよ.


入力例 1

10 3 7
JOIjoiJoIj

出力例 1

JOJiojIoIj

入力例 2

9 6 6
abcdefghi

出力例 2

abcdefghi

A = B かもしれない.

C - 最頻値 (Mode)

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点: 100

問題文

長さ N の数列 A_1, A_2, \ldots, A_N が与えられる. この数列の各項は 1 以上 M 以下の整数である.

長さ M の新たな数列 B_1, B_2, \ldots, B_M を以下のように定義する.

  • j (1 \leqq j \leqq M) に対して,B_j の値は A_i = j を満たす整数 i (1 \leqq i \leqq N) の個数に等しい.

B_1, B_2, \ldots, B_M の最大値を求めよ.

制約

  • 1 \leqq N \leqq 100
  • 1 \leqq M \leqq 100
  • 1 \leqq A_i \leqq M (1 \leqq i \leqq N).

入力

入力は以下の形式で標準入力から与えられる.

N M
A_1 A_2 \cdots A_N

出力

B_1, B_2, \ldots, B_M の最大値を 1 行で出力せよ.


入力例 1

4 3
1 1 2 3

出力例 1

2

数列 B_1, B_2, B_32, 1, 1 となり,これらの最大値は 2 である.


入力例 2

6 5
3 3 2 1 2 3

出力例 2

3