paiza > paizaオンラインハッカソン5 > POH5+ 国際プログラミング選手権

俺の許婚と幼なじみが修羅場すぎる

Share
  • このエントリーをはてなブックマークに追加

レナとミナミの国際プログラミングコンテスト : 問題

15パズルとは、1~15の数字が書かれたタイルを4x4の合計16マスからなる枠の中でスライドさせ、並び替えるゲームです。 タイルのない空マスの四方に隣接するタイルを空マスへ移動することでゲームを進行します。
例えば、次の図のようにゲームを進行することができます。
タイルをスライドさせ、盤面を完成させるプログラムを作成してください。 ただし、最短の手数でパズルを完成させる必要はなく、盤面を完成させることができるならば、どのような順番でタイルをスライドしても構いません。
ヒント
タイルのランダムな移動を繰り返すことで、盤面を完成させることができます。 例えば、番号1のタイルを左上の位置に移動させたいならば、番号1のタイルが目的の位置に移動するまで、タイルのランダムな移動を繰り返します。 さらに、左上に移動した番号1のタイルの右隣に番号2のタイルを移動させたいならば、番号2のタイルが目的の位置に移動するまで、タイルのランダムな移動を繰り返します。 この場合は、番号1のタイルは動かさないようにタイルをランダムに移動させるとよいでしょう。 また、任意の盤面でランダムなタイルの移動を繰り返したときに、10,000回以内の移動で、あるタイルを特定の位置に移動させることができる確率は99%以上となることに注意してください。
ミッション スペシャル

タイルをスライドさせ、盤面を完成させるプログラムを作成してください。

想定される入力

入力は以下のフォーマットで与えられる。
t_1 t_2 t_3 t_4
t_5 t_6 t_7 t_8
t_9 t_10 t_11 t_12
t_13 t_14 t_15 t_16




ゲームの盤面は、左上のマスt_1から順に与えられれ、最後に右下のマスt_16が与えられます。

条件・制約

すべてのテストケースにおいて、以下の条件をみたします。
入力の制約
マス t_i (1 ≦ i ≦ 16) は次を満たします。
タイルが存在するならば、1から15までのいずれかの数字である タイルが存在しないならば、文字'*'である
t_iは互いに異なります。
与えらえれる盤面は必ず完成させることができます。
完成した盤面が与えられることはありません。
出力の制約
スライドさせることができないタイル(空マスの四方に隣接しないタイル)をスライドさせてはいけません。
タイルをスライドさせる回数は1,000,000回以内でなければなりません。

期待する出力

タイルの番号をスライドさせる順番に1行ずつ出力してください。 各行は余計な文字やスペースを含んではいけません。 出力した順にタイルをスライドすると、入力で与えられた盤面を完成させることができなければなりません。
最後は改行し、余計な文字、空行を含んではならない。
入力例1
1 2 3 4
5 6 7 8
9 10 * 11
13 14 15 12
出力例1
11
12
入力例2
2 3 4 *
1 5 6 7
10 11 12 8
9 13 14 15
出力例2
4
3
2
1
5
6
7
8
12
11
10
9
13
14
15

解答欄

上記の問題の解答コードを下記入力欄に記入し提出してください。
使用できる言語はJava,PHP,Ruby,Python2,Python3,Perl,C,C++,C#,JavaScript,Objective-C,Scala,Go,Swift,Kotlinです。その他の言語(Beta)は、問題が解けない可能性があります。

標準入力の値の取得方法は下記ページのサンプルコードを参照ください。

Let’sチャレンジ!!得意な言語を選んでコードを書いてみよう

使用する言語(提出するコードの言語)

あなたの得意な言語を選択!

コード実行結果

ニックネーム (必須)
英数半角文字のみ。ランキング一覧や模範解答コード掲載時、プレゼント当選者発表時にサイトに掲載する事がございます。
メールアドレス (必須)
登録メールアドレスは、paiza オンラインハッカソン以外で利用する事はございません。
コードを提出頂くと解答結果ページをメールいたします。
(必須)
プレゼント発送先は日本国内とさせて頂きます。

イベントの流れ

STEP1 コードを書く

STEP2 動作確認する

STEP3 提出

STEP4 その場で採点結果発表!
下へ
参加者の中から抽選で3名様ねるねるねるね10個セットプレゼント!!
参加者の中から抽選で1名様にRaspberry-Piプレゼント!!
  • 提出コードはニックネームで他の挑戦者にも公開される事が有ります。POH5、POH5+のどちらかに参加すればプレゼント対象となります。

開催期間、プレゼント

スケジュール

応募期間
4月14日(火)~5月19日(火)
審査期間
5月20日(火)~5月26日(火)
結果発表
5月27日(水)

プレゼント

参加者の中から抽選で、3名の方に桃屋の商品(ごはんですよ、さあさあ生七味とうがらし山椒はピリリ結構なお味)6本セット、1名の方にIntel Edison Kit for Arduinoをプレゼント。

イベント規約

  •  本キャンペーンでは、会員登録をしないで公開問題を受験していただくことができます。ただし、ご利用にあたっては、以下の注意事項にご了承いただくことが前提となります。
  • *注意事項*
  • (1) 会員登録は必要ありませんが、メールアドレスのご登録が必要になります。ただし当社は、いただいたメールアドレスを本キャンペーン関連のご連絡以外には使用しないものとします。
  • (2) 既存会員の方も本キャンペーンでの受験にご参加いただけますが、ご自身のスキルランクには影響しませんので、予めご了承ください。
  • (3) ご提出いただいたコードの著作権は受験者にその権利が帰属しますが、当社はそのコードを当社のサイトやSNS上で公開したりなど、自由に利用できるものとします。詳しくは 当社利用規約第5条2項に準じるものとします。
  • (4) ご提出いただいたコードは当社システム上において完全に保存されない場合がありますので、受験者ご自身において必要に応じてバックアップを取るなど、適切なご対応をお願いいたします。

同時開催!マンガ版「エンジニアの許嫁と幼なじみが修羅場すぎる」

paizaオンラインハッカソン(略してPOH![ポー!])vol.5 【POH vol.5】同時開始!エンジニアの幼なじみと許嫁が修羅場すぎる

国別集計

提出数

平均手数

平均実行時間

日本

2844 提出

1531.59 回

1.15 秒

United States

112 提出

176.05 回

1.32 秒

China

163 提出

78.09 回

0.68 秒

Korea

1 提出

- 回

- 秒

Spain

7 提出

- 回

- 秒

Indonesia

80 提出

348.8 回

0.17 秒

Taiwan

60 提出

58.86 回

0.06 秒

Netherlands

2 提出

112.8 回

0.08 秒

Canada

22 提出

2590.17 回

0.26 秒

Sweden

1 提出

4260.4 回

0.11 秒

Singapore

2 提出

- 回

- 秒

Philippines

27 提出

112.8 回

0.23 秒

Hong Kong

231 提出

60.72 回

0.01 秒

Estonia

2 提出

- 回

- 秒

other

7 提出

- 回

- 秒

(2015/05/20更新)

ランキング トップ50

盤面を完成させた平均手数のランキングです。

ニックネーム

平均手数

平均実行時間

言語

1位 uwi

39.6 回

2.39 秒

Java

2位 IL_k

39.6 回

0.03 秒

C#

3位 hackByMikeCAT

39.6 回

0.01 秒

C

4位 hiromi_ayase

39.6 回

0.59 秒

C#

5位 lassie

39.6 回

0.09 秒

Ruby

6位 carrotflakes

39.6 回

0.01 秒

C++

7位 hogeover30

40.4 回

0.85 秒

C++

8位 orisano

41.6 回

0.85 秒

C++

9位 nus

41.6 回

0.89 秒

C++

10位 aspen

42.8 回

0.49 秒

C#

11位 holydc

43.2 回

0.03 秒

C++

12位 y_mazun

43.2 回

0.75 秒

C++

13位 siman

43.6 回

0.9 秒

C++

14位 qaolwsik

44.4 回

0.32 秒

C#

15位 romain_li

46.0 回

1.27 秒

Python2

16位 r

46.0 回

0.7 秒

C++

17位 iwata0303

46.0 回

3.55 秒

Python2

18位 iwashi31

46.4 回

0.19 秒

C++

19位 mayoko

46.4 回

0.2 秒

C++

20位 y_uti

46.4 回

0.04 秒

PHP

21位 ReiFNSK

46.8 回

1.47 秒

Java

22位 ark214

46.8 回

0.09 秒

C#

23位 quarter_moon

47.6 回

1.26 秒

Ruby

24位 neko

48.4 回

0.15 秒

C++

25位 ha2ne2

48.8 回

1.81 秒

Ruby

26位 kurapan

48.8 回

1.13 秒

Python2

27位 tekitouk

48.8 回

0.38 秒

C++

28位 roiti46

49.6 回

1.03 秒

C++

29位 heinetsu

49.6 回

0.49 秒

C#

30位 DoG

50.0 回

7.64 秒

Ruby

31位 kazekaoru

50.4 回

0.2 秒

C++

32位 homulerdora

50.8 回

0.92 秒

Haskell(Beta)

33位 Leonardone

51.6 回

0.02 秒

C++

34位 MikeCAT

52.0 回

0.56 秒

C++

35位 n_toriq

52.0 回

0.42 秒

C#

36位 cozziekuns

52.8 回

2.14 秒

Ruby

37位 chitose

53.2 回

0.2 秒

C++

38位 chexq09

53.6 回

0.67 秒

C++

39位 mugenen

54.4 回

0.72 秒

Python2

40位 cozziechang

55.6 回

1.17 秒

Ruby

41位 pkc

58.4 回

0.85 秒

C

42位 cozykuns

58.4 回

1.56 秒

Ruby

43位 Gasu

58.8 回

2.33 秒

Perl

44位 Bruce

59.2 回

0.01 秒

C

45位 hejob

61.2 回

0.37 秒

C++

46位 Kay

64.0 回

0.01 秒

C++

47位 448

64.8 回

0.22 秒

C++

48位 haraduka

66.0 回

0.73 秒

C++

49位 kos

66.8 回

1.33 秒

C#

50位 iicafiaxus

68.8 回

0.54 秒

D(Beta)

(2015/05/20更新)

paizaに求人掲載頂いている企業様例

paizaにユーザー登録(無料)して壁紙Get!

paizaにユーザー登録(ログイン)するとミナミ、レナ壁紙5種類がダウンロードできます!

扉絵パターン壁紙1
扉絵パターン壁紙2
キャラクター設定資料壁紙

無料でプログラミングスキルチェックを試してみる(登録は10秒!)
すぐにプログラミング力をはかるスキルチェック問題にチャレンジできます。(想定解答時間20分)

会員登録(無料)

ページの先頭へ戻る