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

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

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

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

15パズルとは、1~15の数字が書かれたタイルを4x4の合計16マスからなる枠の中でスライドさせ、並び替えるゲームです。 タイルのない空マスの四方に隣接するタイルを空マスへ移動することでゲームを進行します。
例えば、次の図のようにゲームを進行することができます。 Figure special
タイルをスライドさせ、盤面を完成させるプログラムを作成してください。 ただし、最短の手数でパズルを完成させる必要はなく、盤面を完成させることができるならば、どのような順番でタイルをスライドしても構いません。
ヒント
タイルのランダムな移動を繰り返すことで、盤面を完成させることができます。 例えば、番号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,Perl,Python,C,C#,C++,JavaScriptです。その他の言語(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】同時開始!エンジニアの幼なじみと許嫁が修羅場すぎる

国別集計

提出数

平均手数

平均実行時間

Jp 日本

2844 提出

1531.59 回

1.15 秒

Us United States

112 提出

176.05 回

1.32 秒

Cn China

163 提出

78.09 回

0.68 秒

Kr Korea

1 提出

- 回

- 秒

Es Spain

7 提出

- 回

- 秒

Id Indonesia

80 提出

348.8 回

0.17 秒

Tw Taiwan

60 提出

58.86 回

0.06 秒

Nl Netherlands

2 提出

112.8 回

0.08 秒

Ca Canada

22 提出

2590.17 回

0.26 秒

Se Sweden

1 提出

4260.4 回

0.11 秒

Sg Singapore

2 提出

- 回

- 秒

Ph Philippines

27 提出

112.8 回

0.23 秒

Hk Hong Kong

231 提出

60.72 回

0.01 秒

Ee Estonia

2 提出

- 回

- 秒

other

7 提出

- 回

- 秒

(2015/05/20更新)

ランキング トップ50

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

ニックネーム

平均手数

平均実行時間

言語

1位 Jp uwi

39.6 回

2.39 秒

Java

2位 Jp IL_k

39.6 回

0.03 秒

C#

3位 Jp hackByMikeCAT

39.6 回

0.01 秒

C

4位 Jp hiromi_ayase

39.6 回

0.59 秒

C#

5位 Jp lassie

39.6 回

0.09 秒

Ruby

6位 Jp carrotflakes

39.6 回

0.01 秒

C++

7位 Jp hogeover30

40.4 回

0.85 秒

C++

8位 Jp orisano

41.6 回

0.85 秒

C++

9位 Jp nus

41.6 回

0.89 秒

C++

10位 Jp aspen

42.8 回

0.49 秒

C#

11位 Tw holydc

43.2 回

0.03 秒

C++

12位 Jp y_mazun

43.2 回

0.75 秒

C++

13位 Jp siman

43.6 回

0.9 秒

C++

14位 Jp qaolwsik

44.4 回

0.32 秒

C#

15位 Cn romain_li

46.0 回

1.27 秒

Python2

16位 Jp r

46.0 回

0.7 秒

C++

17位 Jp iwata0303

46.0 回

3.55 秒

Python2

18位 Jp iwashi31

46.4 回

0.19 秒

C++

19位 Jp mayoko

46.4 回

0.2 秒

C++

20位 Jp y_uti

46.4 回

0.04 秒

PHP

21位 Jp ReiFNSK

46.8 回

1.47 秒

Java

22位 Jp ark214

46.8 回

0.09 秒

C#

23位 Jp quarter_moon

47.6 回

1.26 秒

Ruby

24位 Jp neko

48.4 回

0.15 秒

C++

25位 Jp ha2ne2

48.8 回

1.81 秒

Ruby

26位 Jp kurapan

48.8 回

1.13 秒

Python2

27位 Jp tekitouk

48.8 回

0.38 秒

C++

28位 Jp roiti46

49.6 回

1.03 秒

C++

29位 Jp heinetsu

49.6 回

0.49 秒

C#

30位 Jp DoG

50.0 回

7.64 秒

Ruby

31位 Jp kazekaoru

50.4 回

0.2 秒

C++

32位 Jp homulerdora

50.8 回

0.92 秒

Haskell(Beta)

33位 Jp Leonardone

51.6 回

0.02 秒

C++

34位 Jp MikeCAT

52.0 回

0.56 秒

C++

35位 Id n_toriq

52.0 回

0.42 秒

C#

36位 Us cozziekuns

52.8 回

2.14 秒

Ruby

37位 Jp chitose

53.2 回

0.2 秒

C++

38位 Cn chexq09

53.6 回

0.67 秒

C++

39位 Jp mugenen

54.4 回

0.72 秒

Python2

40位 Jp cozziechang

55.6 回

1.17 秒

Ruby

41位 Jp pkc

58.4 回

0.85 秒

C

42位 Us cozykuns

58.4 回

1.56 秒

Ruby

43位 Jp Gasu

58.8 回

2.33 秒

Perl

44位 Hk Bruce

59.2 回

0.01 秒

C

45位 Cn hejob

61.2 回

0.37 秒

C++

46位 Cn Kay

64.0 回

0.01 秒

C++

47位 Jp 448

64.8 回

0.22 秒

C++

48位 Jp haraduka

66.0 回

0.73 秒

C++

49位 Jp kos

66.8 回

1.33 秒

C#

50位 Jp iicafiaxus

68.8 回

0.54 秒

D(Beta)

(2015/05/20更新)

paizaは、IT/Webエンジニア特化のコーディング転職サイトです

コーディングテストの対応言語

想定回答時間は20分!対応言語は Java、PHP、Ruby、Python2、Python3、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift 。

書類選考なし1次面接、会社見学

スコアに応じて書類選考パス/カジュアル面談が可能な求人企業がわかります。応募するまで求人企業には結果は通知されません。

プログラマ目線で取材した求人票

エンジニア、プログラマの仕事選びに必要な、開発手法、開発環境、利用ツール、評価方法、上司プロフィールを徹底取材。

自動スコアリング

コードは複数のテストケースでチェックし、メモリ使用量、実行速度でスコアを算出。面接時はコードを元に話が弾みます。

問題はランクS,A,B,C,Dで構成

問題はランクS,A,B,C,Dで構成。1問づつ受けることができます。制限時間内にベストなアルゴリズムを!

再チャレンジ可能

毎週問題更新!更新時再度同ランクの問題にチャレンジが可能。スキルアップの練習としても最適です。

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

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

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

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

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

会員登録(無料)

ページの先頭へ戻る