#codeformula2014finalc. [code_formula_2014_final_c]次世代SNS
[code_formula_2014_final_c]次世代SNS
問題文
あなたは、とあるSNSを作ろうとしています。
このSNSでは、@username
という形式で、特定のユーザーにメッセージを送ることが可能であり、 つの発言に複数のユーザーを指定することで、複数のユーザーに同時にメッセージを送ることが可能になります。
このSNSは、以下のようなルールに従っています。
- 書き込まれるメッセージは、半角小文字アルファベット、半角スペース、
@
のみを含む。 - 書き込まれたメッセージに
@
が含まれていた場合、@
直後の、アルファベットのみで構成される文字列のうち、最も長い文字列をユーザー名として扱い、そのユーザーにメッセージを届ける。 @
の直後がアルファベットでなかった場合は無視する。- 複数回同じユーザーが指定されても、メッセージは 回届ければ良い。
あなたは、このシステムを実装するために、書き込まれたメッセージに対し、メッセージを届けるべきユーザーを列挙するプログラムを作りたいです。
メッセージを送るべきユーザーを全て出力しなさい。なお、ユーザーが複数いる場合は、辞書順で出力しなさい。
入力
入力は以下の形式で標準入力から与えられる。
- 行目には、書き込まれるメッセージを表す文字列 が与えられる。
- 文字列 には、小文字アルファベット、 、
@
以外の文字は含まれない。
出力
メッセージを送るべきユーザーを、 行ずつ全て出力しなさい。なお、ユーザーが複数いる場合は、辞書順で出力しなさい。
入力例1
@codeformula why is this contest so easy
出力例1
codeformula
codeformula
さんへのメッセージです。半角スペースが挟まれているので、why
以降をユーザー名として認識することはありません。
また、@
を出力する必要はありません。
入力例2
myon @@c @a @aba@a @@bb bbb @@@@@ @a test @ space aaa test @a@a test@takoyaki
出力例2
a
aba
bb
c
takoyaki
a
が何度も指定されていますが、一度だけ出力する必要があります。
また、ユーザ名は辞書順で出力する必要があります。
入力例3
no atmark
出力例3
メッセージを送るべきユーザーがいない場合、何も出力しないで構いません。
Source Name
Code Formula 2014 本戦