1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | def choose(m) self.factorial / (m.factorial * (self - m).factorial) end def fact (n) if n < 2 return 1 end (2..n).inject(1) { |f, n| f * n } end mod = 10**9 + 7 t = gets.to_i while t > 0 s = gets.chomp s = s.gsub("j","") s = s.gsub("J","") s = s.gsub("u","") s = s.gsub("U","") s = s.gsub("w","") s = s.gsub("W","") n = s.length m = n count = [] i = 0 while s[i]!=nil count << s.count(s[i]) s = s.gsub(s[i],"") end n = count.length deno = 1 (0..n-1).each{ |i| deno = deno * fact(count[i]) } if(m != 0 ) print "%d\n" %"#{(fact(m)/deno)%mod}" else puts "0" end t= t - 1 end |
ZGVmIGNob29zZShtKQpzZWxmLmZhY3RvcmlhbCAvIChtLmZhY3RvcmlhbCAqIChzZWxmIC0gbSkuZmFjdG9yaWFsKQplbmQKZGVmIGZhY3QgKG4pCmlmIG4gPCAyCnJldHVybiAxCmVuZAooMi4ubikuaW5qZWN0KDEpIHsgfGYsIG58IGYgKiBuIH0KZW5kCm1vZCA9IDEwKio5ICsgNwp0ID0gZ2V0cy50b19pCndoaWxlIHQgPiAwCgpzID0gZ2V0cy5jaG9tcApzID0gcy5nc3ViKCJqIiwiIikKcyA9IHMuZ3N1YigiSiIsIiIpCnMgPSBzLmdzdWIoInUiLCIiKQpzID0gcy5nc3ViKCJVIiwiIikKcyA9IHMuZ3N1YigidyIsIiIpCnMgPSBzLmdzdWIoIlciLCIiKQpuID0gcy5sZW5ndGgKbSA9IG4KCmNvdW50ID0gW10KaSA9IDAKd2hpbGUgc1tpXSE9bmlsCmNvdW50IDw8IHMuY291bnQoc1tpXSkKCnMgPSBzLmdzdWIoc1tpXSwiIikKCmVuZApuID0gY291bnQubGVuZ3RoCmRlbm8gPSAxCigwLi5uLTEpLmVhY2h7IHxpfApkZW5vID0gZGVubyAqIGZhY3QoY291bnRbaV0pCgoKfQppZihtICE9IDAgKQpwcmludCAiJWRcbiIgJSIjeyhmYWN0KG0pL2Rlbm8pJW1vZH0iCmVsc2UKcHV0cyAiMCIKZW5kCnQ9IHQgLSAxCmVuZA==
-
upload with new input
-
result: Success time: 0s memory: 4760 kB returned value: 0
1 awa
1
-
result: Success time: 0s memory: 4760 kB returned value: 0
1 abca
12
-
result: Success time: 0s memory: 4892 kB returned value: 0
4 ab aa aA AAbaz
2 1 2 60



