1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Bランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Ruby編
  5. 「決まり字」を解くために : part4 Ruby編

Bランク・スキルチェック過去問題セットのサムネイル
「決まり字」を解くために : part4 Ruby編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

part 2 では最長共通接頭辞を求めました。
次は、最長共通接頭辞を利用して決まり字を求めてみましょう。


2 つの和歌の上の句が与えられるので、和歌 m の決まり字を求めてください。

決まり字とは、和歌を一つに特定するために必要な最小の上の句の先頭何文字かの文字列です。
例えば、和歌 1 を akinotanokarihonoionotomaoarami 、和歌 2 を akikazenitanabikukumonotaemayori としたとき、和歌 1 の決まり字は akin です。
また、この 2 つの和歌の最長共通接頭辞は aki です。

入力される値

n m
s_1
s_2

* 1 行目では、和歌の数 n と決まり字を知りたい和歌の番号 m が与えられます。
* 2 行目から 3 行目までの各行では、和歌の上の句が与えられます。i + 1 (1 ≦ i ≦ 2) 行目には、和歌 i の上の句が与えられます。
* 入力は合計で 3 行となり、入力の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

和歌 m の決まり字を一行で出力してください。

最後は改行し、余計な文字、空行を含んではいけません。

条件

* n = 2
* m = 1 または m = 2
* 1 ≦ |s_i| ≦ 100
* s_i は英小文字からなる
* s_i ≠ s_j (i ≠ j)
* s_i が s_j (i ≠ j) の接頭辞に完全に含まれることはない

入力例1

2 1
akinotanokarihonoionotomaoarami
akikazenitanabikukumonotaemayori

出力例1

akin

入力例2

2 2
kirigirisunakuyashimoyonosamushironi
kimigatameharunononiidetewakanatsumu

出力例2

kim

入力例3

2 2
murasamenotsuyumomadahinumakinohani
suminoenokishiniyorunamiyorusaeya

出力例3

s

入力例4

2 1
aaaaaa
aaab

出力例4

aaaa

問題一覧へ戻る

ページの先頭へ戻る