mtsmfm blog

オフラインリアルタイムどう書く E14 の問題 - サイコロできるかな

オフラインリアルタイムどう書く E14 の問題です。

追記: 当日発表中に自分で気づいて懺悔しましたが、ある場合のテストケースが足りずに出題者の回答が特定の状況で誤検出していました。 @Nabetani さんありがとうございます。

問題の概要

でたらめにサイコロの目を印刷した紙がある。 サイコロを作ることができるか答えよ。

入力

5262,4631,2644 のような形式。 数字はサイコロの目。, は行の区切り。 この値の場合上の図のようになる。

出力

true もしくは false。 サイコロができれば true。 なければ false

補足

2、3、6などの向きは気にしない。 つまり、1の裏が6、2の裏が5、3の裏が4になっていればよいものとする。

不正な入力について考慮する必要はない。

おまけ

回転したものや上下左右を反転させたものを除くと、立方体の展開図は以下の 11 通り。

立方体展開図一覧


実装ができた方は Qiitaの記事 のコメント欄からリンクを張っていただくと見つけやすくて助かります。

サンプルデータ

#入力期待状況へのリンク
044165,44516false状況
126265,31436true状況
246345,54215true状況
362143,11152false状況
44242,4314,1562false状況
55612,3656,4523false状況
65514,1311,5252false状況
75262,4631,2644true状況
86626,3324,2644false状況
94645,6314,2564true状況
1054,65,23,21,14true状況
115325,3641,1335true状況
124163,2156,2553true状況
133126,6543,4352false状況
144464,5423,5216true状況
153564,3634,5631false状況
164363,3454,2126true状況
1725,25,33,12,52false状況
181551,4542,3624true状況
196623,4126,6331false状況
202432,6215,1623true状況
211151,6555,3616false状況
222466,1242,4444false状況
235646,1463,4244true状況
241255,6413,4534true状況
251325,2312,2425false状況
262544,6413,4656true状況
271656,4131,3235true状況
286332,3631,4113false状況
294525,2151,2336true状況
301645,2356,4314true状況
313334,6215,1553true状況
322622,5251,5165false状況
331111,5613,3451false状況
346146,4512,6353true状況
352455,3312,6461false状況
361221,1325,1422false状況
371562,2236,5212false状況
386622,3324,5155true状況
392352,4631,1236true状況
404645,2252,6554false状況
413542,6515,1231true状況
4212,61,56,45,23false状況
434643,6522,3625false状況
441151,1642,4512false状況
455423,5146,2212false状況
466224,3412,5653true状況
473122,5423,6231true状況
485421,2351,6513false状況
495652,3542,3313true状況
505524,3335,1146false状況
515311,4126,6425true状況
5215,43,62,42,14true状況
533631,3542,3265true状況
541232,5364,6135true状況
552441,4644,5433false状況
562213,5621,3412true状況
576644,1264,1235true状況
585613,1423,6315true状況
596552,1546,2141false状況
605623,1461,5645true状況
611442,1436,6362false状況
623443,5145,4546false状況
631244,1313,2316false状況
642152,1463,2114true状況
651211,6234,5561false状況
664152,1252,3142false状況
676645,1231,6122false状況
68353,241,121,536true状況
69224,444,651,234true状況
70643,214,244,343false状況
71624,542,214,333true状況
72441,426,536,656true状況
73564,642,513,364true状況
74422,136,414,416false状況
75463,356,113,662true状況
76464,515,435,462true状況
77531,145,364,525false状況
78623,564,153,633false状況
79335,462,531,424false状況
80131,111,535,436false状況
81435,414,423,365true状況
82144,512,332,346true状況
83342,246,342,634false状況
84246,566,431,415true状況
85444,554,234,621true状況
86313,624,165,652true状況
87563,262,545,315true状況
88213,264,154,264false状況
89364,434,246,113false状況
90411,656,325,225false状況
91624,234,115,443true状況
92252,214,635,154false状況
93146,213,525,164false状況
94456,423,112,352true状況
95253,156,111,355false状況
96252,161,562,365false状況
97136,553,544,524true状況
98414,351,161,525true状況
99261,442,111,531true状況
100323,664,454,133true状況
101213,415,225,165false状況
102363,162,165,533false状況
103346,441,315,241false状況
104121,312,155,164true状況
105123,311,452,365true状況
106361,145,212,431true状況
107451,264,412,513false状況
108311,456,263,226true状況
109343,442,624,635false状況
110534,644,234,251false状況
111515,346,462,435true状況
112445,126,165,636false状況
113343,355,126,353false状況
114623,533,256,144true状況
115125,341,566,416false状況
116354,434,621,411true状況
117356,435,253,114false状況
118141,265,533,514true状況
119613,426,142,535true状況
120366,322,413,325true状況
121331,542,343,545false状況
122261,512,563,123false状況
123242,132,656,164true状況
124133,545,441,665false状況
125111,151,621,545false状況
126132,154,234,653false状況
127114,455,635,511false状況
12814366,64254,66664,42611,41245false状況
12941114,53116,13122,66613,35111false状況
13022146,34244,16154,62531,51426true状況
131464316,136563,136326,535655,641161,252655true状況
132166255,615452,261224,533566,323335,556213false状況
133126665,245653,343553,254661,365415,361154false状況
1341512663,1525531,5456426,6336325,4324465,6512242,4112466true状況
1352236563,6644542,4425515,6641142,4214543,1156426,3225413false状況
1365545354,6566343,3525411,5356165,4625265,1535435,5522665false状況
13716161,61616,16161false状況
1382431,6354,2341false状況

テストデータ

状況一覧

#0 : 44165,44516 : false


#1 : 26265,31436 : true


#2 : 46345,54215 : true


#3 : 62143,11152 : false


#4 : 4242,4314,1562 : false


#5 : 5612,3656,4523 : false


#6 : 5514,1311,5252 : false


#7 : 5262,4631,2644 : true


#8 : 6626,3324,2644 : false


#9 : 4645,6314,2564 : true


#10 : 54,65,23,21,14 : true


#11 : 5325,3641,1335 : true


#12 : 4163,2156,2553 : true


#13 : 3126,6543,4352 : false


#14 : 4464,5423,5216 : true


#15 : 3564,3634,5631 : false


#16 : 4363,3454,2126 : true


#17 : 25,25,33,12,52 : false


#18 : 1551,4542,3624 : true


#19 : 6623,4126,6331 : false


#20 : 2432,6215,1623 : true


#21 : 1151,6555,3616 : false


#22 : 2466,1242,4444 : false


#23 : 5646,1463,4244 : true


#24 : 1255,6413,4534 : true


#25 : 1325,2312,2425 : false


#26 : 2544,6413,4656 : true


#27 : 1656,4131,3235 : true


#28 : 6332,3631,4113 : false


#29 : 4525,2151,2336 : true


#30 : 1645,2356,4314 : true


#31 : 3334,6215,1553 : true


#32 : 2622,5251,5165 : false


#33 : 1111,5613,3451 : false


#34 : 6146,4512,6353 : true


#35 : 2455,3312,6461 : false


#36 : 1221,1325,1422 : false


#37 : 1562,2236,5212 : false


#38 : 6622,3324,5155 : true


#39 : 2352,4631,1236 : true


#40 : 4645,2252,6554 : false


#41 : 3542,6515,1231 : true


#42 : 12,61,56,45,23 : false


#43 : 4643,6522,3625 : false


#44 : 1151,1642,4512 : false


#45 : 5423,5146,2212 : false


#46 : 6224,3412,5653 : true


#47 : 3122,5423,6231 : true


#48 : 5421,2351,6513 : false


#49 : 5652,3542,3313 : true


#50 : 5524,3335,1146 : false


#51 : 5311,4126,6425 : true


#52 : 15,43,62,42,14 : true


#53 : 3631,3542,3265 : true


#54 : 1232,5364,6135 : true


#55 : 2441,4644,5433 : false


#56 : 2213,5621,3412 : true


#57 : 6644,1264,1235 : true


#58 : 5613,1423,6315 : true


#59 : 6552,1546,2141 : false


#60 : 5623,1461,5645 : true


#61 : 1442,1436,6362 : false


#62 : 3443,5145,4546 : false


#63 : 1244,1313,2316 : false


#64 : 2152,1463,2114 : true


#65 : 1211,6234,5561 : false


#66 : 4152,1252,3142 : false


#67 : 6645,1231,6122 : false


#68 : 353,241,121,536 : true


#69 : 224,444,651,234 : true


#70 : 643,214,244,343 : false


#71 : 624,542,214,333 : true


#72 : 441,426,536,656 : true


#73 : 564,642,513,364 : true


#74 : 422,136,414,416 : false


#75 : 463,356,113,662 : true


#76 : 464,515,435,462 : true


#77 : 531,145,364,525 : false


#78 : 623,564,153,633 : false


#79 : 335,462,531,424 : false


#80 : 131,111,535,436 : false


#81 : 435,414,423,365 : true


#82 : 144,512,332,346 : true


#83 : 342,246,342,634 : false


#84 : 246,566,431,415 : true


#85 : 444,554,234,621 : true


#86 : 313,624,165,652 : true


#87 : 563,262,545,315 : true


#88 : 213,264,154,264 : false


#89 : 364,434,246,113 : false


#90 : 411,656,325,225 : false


#91 : 624,234,115,443 : true


#92 : 252,214,635,154 : false


#93 : 146,213,525,164 : false


#94 : 456,423,112,352 : true


#95 : 253,156,111,355 : false


#96 : 252,161,562,365 : false


#97 : 136,553,544,524 : true


#98 : 414,351,161,525 : true


#99 : 261,442,111,531 : true


#100 : 323,664,454,133 : true


#101 : 213,415,225,165 : false


#102 : 363,162,165,533 : false


#103 : 346,441,315,241 : false


#104 : 121,312,155,164 : true


#105 : 123,311,452,365 : true


#106 : 361,145,212,431 : true


#107 : 451,264,412,513 : false


#108 : 311,456,263,226 : true


#109 : 343,442,624,635 : false


#110 : 534,644,234,251 : false


#111 : 515,346,462,435 : true


#112 : 445,126,165,636 : false


#113 : 343,355,126,353 : false


#114 : 623,533,256,144 : true


#115 : 125,341,566,416 : false


#116 : 354,434,621,411 : true


#117 : 356,435,253,114 : false


#118 : 141,265,533,514 : true


#119 : 613,426,142,535 : true


#120 : 366,322,413,325 : true


#121 : 331,542,343,545 : false


#122 : 261,512,563,123 : false


#123 : 242,132,656,164 : true


#124 : 133,545,441,665 : false


#125 : 111,151,621,545 : false


#126 : 132,154,234,653 : false


#127 : 114,455,635,511 : false


#128 : 14366,64254,66664,42611,41245 : false


#129 : 41114,53116,13122,66613,35111 : false


#130 : 22146,34244,16154,62531,51426 : true


#131 : 464316,136563,136326,535655,641161,252655 : true


#132 : 166255,615452,261224,533566,323335,556213 : false


#133 : 126665,245653,343553,254661,365415,361154 : false


#134 : 1512663,1525531,5456426,6336325,4324465,6512242,4112466 : true


#135 : 2236563,6644542,4425515,6641142,4214543,1156426,3225413 : false


#136 : 5545354,6566343,3525411,5356165,4625265,1535435,5522665 : false


#137 : 16161,61616,16161 : false


#138 : 2431,6354,2341 : false