このページの本文へ

前へ 1 2 3 次へ

大阪と沖縄のチームがグランプリを獲得

電脳高校生がぶつかり合う!「パソコン甲子園2007」開催

2007年11月14日 12時30分更新

文● 編集部 広田稔

  • この記事をはてなブックマークに追加
  • 本文印刷

【オマケ】 これが今年の難問だ!


 さて、プログラミング部門では、最も難易度が高い80点問題が2つ出された。そのうちのひとつである「サイコロパズル」を全文掲載しよう。プログラマーのアナタなら、若き才能を超えられるかぜひチャレンジしてほしい!



問題14 サイコロパズル (80点)


 各面にアルファベット一文字(aからz、AからZ)が描かれたサイコロがあります。

 このようなサイコロを8つ組み合わせて2×2×2の立方体を作ることを考えます。

 組み合わせ方には条件があり、各サイコロの向き合う面は同じアルファベットでかつ一方が小文字、もう一方が大文字でなければなりません。例えば、「a」と描かれた面に接することができるのは「A」と描かれた面です。ただし、接するときの文字の向きは問いません。

 このルールに従い、8つのサイコロの情報を入力とし、立方体を作れるか否かを判定し出力するプログラムを作成してください。立方体を作れる場合は「YES」(半角英大文字)、作れない場合は「NO」(半角英大文字)と出力してください。

 なお、サイコロの各面の文字を次の図にあるように c1からc6 と表すことにします。また、1つのサイコロに同じ文字が複数回描かれていることは無いものとします(同じアルファベットの大文字と小文字はその限りではありません)。

 プログラムは以下に定義する入力が続く限り処理を繰り返し、入力が終わったら終了するように作成してください。


【入力】

 複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。各データセットは以下のとおりです。

1行目 1つ目のサイコロ情報 s(半角英文字列)
   sは長さ6の文字列でありサイコロの各面との対応は以下の通りです
   1文字目:c1
   2文字目:c2
      :
   6文字目:c6
2行目 2つ目のサイコロ情報
      :
      :
8行目 8つ目のサイコロ情報

【出力】

 入力データセットごとに判定結果(半角英大文字)を出力します。

入力例 出力例
zabznq
BCxmAi
ZcbBCj
aizXCm
QgmABC
JHzMop
ImoXGz
MZTOhp
zabznQ
BCxmAi
ZcbBCj
aizXCm
QgmABC
JHzMop
ImoXGz
MZTOhp
abcdef
ABDCFE
FBDCAE
abcdef
BEACDF
bfcaed
fabcde
DEABCF
UnivOf
AizuaH
zTXZYW
piglIt
GRULNP
higGth
uAzIXZ
FizmKZ
UnivOf
AizuaH
piglIt
higGth
GRULNP
uAzIXZ
FizmKZ
ZTXZYW
0
YES
NO
YES
YES
NO

■関連サイト

前へ 1 2 3 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン