Time Limit: 2 sec / Memory Limit: 256 MB
問題文
英大文字 C と英小文字 c が与えられるので、C と c が同じアルファベットか判定してください。
制約
- C は英大文字である。
- c は英小文字である。
入力
入力は以下の形式で標準入力から与えられる。
C c
出力
C と c が同じアルファベットならば Yes
を、そうでなければ No
を出力せよ。
入力例1
A a
出力例1
Yes
入力例2
B c
出力例2
No
入力例3
Z z
出力例3
Yes
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋君は赤い花を R 本、青い花を B 本持っています。高橋君は次の 2 種類の花束を作ることができます。
- x 本の赤い花と 1 本の青い花からなる花束
- 1 本の赤い花と y 本の青い花からなる花束
高橋君が作ることのできる花束の個数の最大値を求めてください。すべての花を使い切る必要はありません。
制約
- 1≦R,B≦10^{18}
- 2≦x,y≦10^9
入力
入力は以下の形式で標準入力から与えられる。
R B x y
出力
高橋君が作ることのできる花束の個数の最大値を出力せよ。
入力例1
5 5 3 4
出力例1
2
「3 本の赤い花と 1 本の青い花からなる花束」を 1 個と、「1 本の赤い花と 4 本の青い花からなる花束」を 1 個作ればよいです。このとき、赤い花が 1 本余ります。
入力例2
10 20 2 2
出力例2
10
「1 本の赤い花と 2 本の青い花からなる花束」を 10 個作ればよいです。
入力例3
1 1 2 2
出力例3
0
入力例4
10000000000 10000000000 4 3
出力例4
4545454545
入力値および出力値は 32 bit 整数型に収まらない場合があります。
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
数字の 1 を A 個並べてできる整数を x とします。また、数字の 1 を B 個並べてできる整数を y とします。x と y の最小公倍数を M で割った余りを求めてください。
制約
- 1≦A,B≦10^{18}
- 2≦M≦10^9
入力
入力は以下の形式で標準入力から与えられる。
A B M
出力
x と y の最小公倍数を M で割った余りを出力せよ。
入力例1
2 3 100
出力例1
21
11 と 111 の最小公倍数は 1221 なので、それを 100 で割った余りは 21 となります。
入力例2
2 2 121
出力例2
11
入力例3
10000000000 1 10007
出力例3
825
入力値は 32 bit 整数型に収まらない場合があります。
Time Limit: 4 sec / Memory Limit: 256 MB
問題文
長さ N の文字列 S が与えられます。各 i (1≦i≦N) について、S の i 文字目から N 文字目までの部分文字列を S_i と呼ぶことにします。
S_1,S_2,...,S_N を好きな順番で連結して得られる文字列のうち、辞書順で最小のものを求めてください。
制約
- 1≦N≦10^5
- S の長さは N である。
- S は英小文字のみからなる。
入力
入力は以下の形式で標準入力から与えられる。
N S
出力
N 行出力せよ。i 行目には p_i を出力せよ。
ただし、(p_1,p_2,...,p_N) は、1 から N までの順列であって、次の条件を満たすものである。
- S_{p_1},S_{p_2},...,S_{p_N} をこの順番で連結して得られる文字列が、辞書順で最小である。
(p_1,p_2,...,p_N) が複数通りある場合、どれを出力してもよい。
入力例1
3 arc
出力例1
1 3 2
arc
,c
,rc
の順番で連結して得られる arccrc
が、辞書順で最小です。
入力例2
2 zz
出力例2
1 2
他には、2,1 の順番で出力してもよいです。
入力例3
5 abaab
出力例3
3 1 4 2 5