A - X に最も近い値 (The Nearest Value)

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 100

問題文

整数 X, L, R が与えられる. L 以上 R 以下の整数のうち,X との差の絶対値が最も小さいものを出力せよ.そのような整数はちょうど 1 つだけ存在することが証明できる.

制約

  • 1 \leqq X \leqq 100\,000
  • 1 \leqq L \leqq R \leqq 100\,000

入力

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

X L R

出力

L 以上 R 以下の整数のうち,X との差の絶対値が最も小さいものを出力せよ.


入力例 1

8 3 6

出力例 1

6

3, 4, 5, 6 のうち,8 との差の絶対値が最も小さいものは 6 である.したがって 6 を出力する.


入力例 2

7 3 10

出力例 2

7

3, 4, 5, 6, 7, 8, 9, 10 のうち,7 との差の絶対値が最も小さいものは 7 である.したがって 7 を出力する.


入力例 3

8 10 10

出力例 3

10
B - キャピタリゼーション (Capitalization)

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 100

問題文

JOI 君は長さ N の文字列 S を見つけた.S に含まれる文字はすべて英小文字である.

JOI 君はこの文字列から自分の名前である joi が連続している部分を先頭から順にすべて探しだすことにした.そして joi を見つけるたびに,強調のためにそれを大文字の JOI に置き換えることにした.

文字列 S が与えられたとき,S に含まれる joi をすべて JOI に置き換えた文字列を出力するプログラムを作成せよ.

制約

  • 3 \leqq N \leqq 100
  • S は長さ N の文字列である.
  • S は英小文字からなる.

入力

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

N
S

出力

S に含まれる joi をすべて JOI に置き換えた文字列を 1 行で出力せよ.


入力例 1

11
joinojoijin

出力例 1

JOInoJOIjin

1 文字目から 3 文字目の joi6 文字目から 8 文字目までの joiJOI に置き換える.


入力例 2

16
jjooiiijoiojioij

出力例 2

jjooiiiJOIojioij

入力例 3

13
nihongoutenai

出力例 3

nihongoutenai

Sjoi がひとつも含まれない場合もあることに注意せよ.

C - 最長昇順連続部分列 (Longest Ascending Contiguous Subsequence)

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 100

問題文

長さ N の正整数列 A=(A_1, A_2, \ldots, A_N) が与えられる.正整数列 A の連続部分列の中で昇順に並んでいるもののうち,最長のものの長さを求めよ.

すなわち,A_l \leqq A_{l+1} \leqq \cdots \leqq A_r を満たすような 2 つの整数 l, r ( 1 \leqq l \leqq r \leqq N ) について,r-l+1 の最大値を求めよ.

制約

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

入力

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

N
A_1 A_2 \cdots A_N

出力

正整数列 A の連続部分列の中で昇順に並んでいるもののうち,最長のものの長さを 1 行で出力せよ.


入力例 1

10
3 1 4 1 5 9 2 6 5 3

出力例 1

3

正整数列 A4 項目から 6 項目までに対応する連続部分列は 1, 5, 9 であり,これは昇順である.これより長い昇順な連続部分列は存在しない.


入力例 2

10
9 8 7 6 5 5 4 3 2 1

出力例 2

2

正整数列 A5 項目から 6 項目までに対応する連続部分列は 5, 5 であり,これは昇順である.これより長い昇順な連続部分列は存在しない.


入力例 3

9
1 2 2 12 120 210 202 1010 2020

出力例 3

6