import java.text.DecimalFormat ;
import java.util.Arrays ;
import java.util.Iterator ;
import java.util.List ;
import java.util.SortedMap ;
import java.util.TreeMap ;
class test{
public static void main
( String args
[ ] ) { "R U R' U' R' F R2 U' R' U' R U R' F'" ,
"(y2) L' U' L U L F' L2 U L U L' U' L F" ,
"F R U' R' U R U R2 F' R U R U' R'" ,
"(y2) B L U' L' U L U L2 B' L U L U' L'" ,
"L2 U' L2 D F2 R2 U R2 D' F2 U" ,
"R2 U' R2 D B2 L2 U L2 D' B2 U" ,
"R2' u' R2 U R2' (y) R2 u R2' U' R2 U" ,
"R2 U R2' U' R2 U' D R2' U' R2 U R2' D'" ,
"U2 r' U2 r U2 (x) U2 r U2 r' U2 R (z')" ,
"R U R' U' R2 D R' U' R' U' R U (z') U2 R' U (z)" ,
"R2 U R2 U' R2 F2 U' F2 D R2 D'" } ;
"U" , "U'" , "U2" , "u" , "u'" , "u2" ,
"R" , "R'" , "R2" , "r" , "r'" , "r2" ,
"F" , "F'" , "F2" , "f" , "f'" , "f2" ,
"D" , "D'" , "D2" , "d" , "d'" , "d2" ,
"B" , "B'" , "B2" , "b" , "b'" , "b2" ,
"L" , "L'" , "L2" , "l" , "l'" , "l2" ,
"x" , "x'" , "x2" ,
"y" , "y'" , "y2" ,
"z" , "z'" , "z2" ,
"M" , "M'" , "M2" ,
"E" , "E'" , "E2" ,
"S" , "S'" , "S2" } ;
List
< String
> moveList
= Arrays .
asList ( moveArray
) ; double [ ] moveCount= {
.09, .10, .15, .11, .12, .17,
.08, .08, .14, .10, .11, .14,
.13, .14, .19, .15, .17, .20,
.11, .12, .17, .13, .14, .19,
.17, .15, .22, .19, .17, .24,
.13, .18, .22, .14, .19, .24,
.18, .18, .24,
.18, .18, .24,
.19, .19, .24,
.15, .11, .18,
.22, .25, .28,
.22, .25, .28} ;
SortedMap
< Double , String
> map
= new TreeMap
< Double , String
> ( ) ;
for ( int x= 0 ; x< algList.length ; x++ ) {
ialgList[ x] = algList[ x] .replace ( "(" , "" ) ;
ialgList[ x] = ialgList[ x] .replace ( ")" , "" ) ;
ialgList[ x] = ialgList[ x] .replace ( "2'" , "2" ) ;
ialgList[ x] = ialgList[ x] .replace ( " " , " " ) ;
String [ ] algFiltered
= ialgList
[ x
] .
split ( " " ) ; double t = 0 ;
for ( int y= 0 ; y< algFiltered.length ; y++ ) {
t+= moveCount[ moveList.indexOf ( algFiltered[ y] ) ] ;
}
map.put ( t, algList[ x] ) ;
}
Iterator< Double> iterator = map.keySet ( ) .iterator ( ) ;
while ( iterator.hasNext ( ) ) {
double time = 0 ;
time
= Double .
valueOf ( df.
format ( key
) ) ; System .
out .
println ( time
+ ": " + map.
get ( key
) ) ; }
}
}
aW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0OwppbXBvcnQgamF2YS51dGlsLkFycmF5czsKaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOwoKY2xhc3MgdGVzdHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmcgYXJnc1tdKXsKCQlTdHJpbmdbXSBhbGdMaXN0PXsKCQkJCSJSIFUgUicgVScgUicgRiBSMiBVJyBSJyBVJyBSIFUgUicgRiciLAoJCSAgICAgICAgIih5MikgTCcgVScgTCBVIEwgRicgTDIgVSBMIFUgTCcgVScgTCBGIiwgCgkJICAgICAgICAiRiBSIFUnIFInIFUgUiBVIFIyIEYnIFIgVSBSIFUnIFInIiwKCQkgICAgICAgICIoeTIpIEIgTCBVJyBMJyBVIEwgVSBMMiBCJyBMIFUgTCBVJyBMJyIsCgkJICAgICAgICAiTDIgVScgTDIgRCBGMiBSMiBVIFIyIEQnIEYyIFUiLAoJCSAgICAgICAgIlIyIFUnIFIyIEQgQjIgTDIgVSBMMiBEJyBCMiBVIiwKCQkgICAgICAgICJSMicgdScgUjIgVSBSMicgKHkpIFIyIHUgUjInIFUnIFIyIFUiLAoJCSAgICAgICAgIlIyIFUgUjInIFUnIFIyIFUnIEQgUjInIFUnIFIyIFUgUjInIEQnIiwgCgkJICAgICAgICAiVTIgcicgVTIgciBVMiAoeCkgVTIgciBVMiByJyBVMiBSICh6JykiLAoJCSAgICAgICAgIlIgVSBSJyBVJyBSMiBEIFInIFUnIFInIFUnIFIgVSAoeicpIFUyIFInIFUgKHopIiwKCQkgICAgICAgICJSMiBVIFIyIFUnIFIyIEYyIFUnIEYyIEQgUjIgRCcifTsKCQlTdHJpbmdbXSBpYWxnTGlzdD1uZXcgU3RyaW5nW2FsZ0xpc3QubGVuZ3RoXTsKCQlTdHJpbmdbXSBtb3ZlQXJyYXk9ewoJCQkJIlUiLCAiVSciLCAiVTIiLCAgICAidSIsICJ1JyIsICJ1MiIsCiAgICAgICAgICAgICAgICAiUiIsICJSJyIsICJSMiIsICAgICJyIiwgInInIiwgInIyIiwKICAgICAgICAgICAgICAgICJGIiwgIkYnIiwgIkYyIiwgICAgImYiLCAiZiciLCAiZjIiLAogICAgICAgICAgICAgICAgIkQiLCAiRCciLCAiRDIiLCAgICAiZCIsICJkJyIsICJkMiIsCiAgICAgICAgICAgICAgICAiQiIsICJCJyIsICJCMiIsICAgICJiIiwgImInIiwgImIyIiwKICAgICAgICAgICAgICAgICJMIiwgIkwnIiwgIkwyIiwgICAgImwiLCAibCciLCAibDIiLAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAieCIsICJ4JyIsICJ4MiIsCiAgICAgICAgICAgICAgICAieSIsICJ5JyIsICJ5MiIsCiAgICAgICAgICAgICAgICAieiIsICJ6JyIsICJ6MiIsCiAKICAgICAgICAgICAgICAgICJNIiwgIk0nIiwgIk0yIiwKICAgICAgICAgICAgICAgICJFIiwgIkUnIiwgIkUyIiwKICAgICAgICAgICAgICAgICJTIiwgIlMnIiwgIlMyIn07CgkJTGlzdDxTdHJpbmc+IG1vdmVMaXN0PUFycmF5cy5hc0xpc3QobW92ZUFycmF5KTsKCQlkb3VibGVbXSBtb3ZlQ291bnQ9ewoJCQkJLjA5LCAuMTAsIC4xNSwgICAgLjExLCAuMTIsIC4xNywKICAgICAgICAgICAgICAgIC4wOCwgLjA4LCAuMTQsICAgIC4xMCwgLjExLCAuMTQsCiAgICAgICAgICAgICAgICAuMTMsIC4xNCwgLjE5LCAgICAuMTUsIC4xNywgLjIwLAogICAgICAgICAgICAgICAgLjExLCAuMTIsIC4xNywgICAgLjEzLCAuMTQsIC4xOSwKICAgICAgICAgICAgICAgIC4xNywgLjE1LCAuMjIsICAgIC4xOSwgLjE3LCAuMjQsCiAgICAgICAgICAgICAgICAuMTMsIC4xOCwgLjIyLCAgICAuMTQsIC4xOSwgLjI0LAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuMTgsIC4xOCwgLjI0LAogICAgICAgICAgICAgICAgLjE4LCAuMTgsIC4yNCwKICAgICAgICAgICAgICAgIC4xOSwgLjE5LCAuMjQsCiAKICAgICAgICAgICAgICAgIC4xNSwgLjExLCAuMTgsCiAgICAgICAgICAgICAgICAuMjIsIC4yNSwgLjI4LAogICAgICAgICAgICAgICAgLjIyLCAuMjUsIC4yOH07CgoJCVNvcnRlZE1hcDxEb3VibGUsIFN0cmluZz4gbWFwID0gbmV3IFRyZWVNYXA8RG91YmxlLCBTdHJpbmc+KCk7CgkJCgkJZm9yKGludCB4PTA7IHg8YWxnTGlzdC5sZW5ndGg7IHgrKyl7CgkJCWlhbGdMaXN0W3hdID0gYWxnTGlzdFt4XS5yZXBsYWNlKCIoIiwgIiIpOwoJCQlpYWxnTGlzdFt4XSA9IGlhbGdMaXN0W3hdLnJlcGxhY2UoIikiLCAiIik7CgkJCWlhbGdMaXN0W3hdID0gaWFsZ0xpc3RbeF0ucmVwbGFjZSgiMiciLCAiMiIpOwoJCQlpYWxnTGlzdFt4XSA9IGlhbGdMaXN0W3hdLnJlcGxhY2UoIiAgIiwgIiAiKTsKCQkJU3RyaW5nW10gYWxnRmlsdGVyZWQgPSBpYWxnTGlzdFt4XS5zcGxpdCgiICIpOwoJCQlkb3VibGUgdCA9IDA7CgkJCWZvcihpbnQgeT0wOyB5PGFsZ0ZpbHRlcmVkLmxlbmd0aDsgeSsrKXsKCQkJCXQrPW1vdmVDb3VudFttb3ZlTGlzdC5pbmRleE9mKGFsZ0ZpbHRlcmVkW3ldKV07CgkJCX0KCQkJbWFwLnB1dCh0LCBhbGdMaXN0W3hdKTsKCQl9CgkJSXRlcmF0b3I8RG91YmxlPiBpdGVyYXRvciA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOwoJCXdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpIHsKCQkgICBPYmplY3Qga2V5ID0gaXRlcmF0b3IubmV4dCgpOwoJCSAgIGRvdWJsZSB0aW1lID0gMDsKCQkgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMuIyMiKTsKCQkgICB0aW1lID0gRG91YmxlLnZhbHVlT2YoZGYuZm9ybWF0KGtleSkpOwoJCSAgIFN5c3RlbS5vdXQucHJpbnRsbih0aW1lICsgIjogIiArIG1hcC5nZXQoa2V5KSk7CgkJfQoJfQp9