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 | 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 n = s.length m = n count = [] i = 0 while i < n count << s.count(s[i]) n = n - s.count(s[i]) s = s.gsub(s[i],"") i = i + 1 end n = count.length deno = 1 (0..n-1).each{ |i| deno = deno * fact(count[i]) } print "#{(fact(m)/deno)%mod}\n" t= t - 1 end |
CmRlZiBjaG9vc2UobSkKICAgIHNlbGYuZmFjdG9yaWFsIC8gKG0uZmFjdG9yaWFsICogKHNlbGYgLSBtKS5mYWN0b3JpYWwpCiAgZW5kCiAgZGVmIGZhY3QgKG4pCglpZiBuIDwJMgoJcmV0dXJuIDEgCgllbmQKICAgICgyLi5uKS5pbmplY3QoMSkgeyB8ZiwgbnwgZiAqIG4gfQogIGVuZAptb2QgPSAxMCoqOSArIDcgCnQgPSBnZXRzLnRvX2kKd2hpbGUgdCA+IDAgCgpzID0gZ2V0cy5jaG9tcApuID0gcy5sZW5ndGgKbSA9IG4KY291bnQgPSBbXQppID0gMAp3aGlsZSBpIDwgbgpjb3VudCA8PCBzLmNvdW50KHNbaV0pCiBuID0gbiAtIHMuY291bnQoc1tpXSkKcyA9IHMuZ3N1YihzW2ldLCIiKQppID0gaSArIDEKZW5kCm4gPSBjb3VudC5sZW5ndGgKZGVubyA9IDEKKDAuLm4tMSkuZWFjaHsgfGl8CmRlbm8gPSBkZW5vICogZmFjdChjb3VudFtpXSkKCn0KcHJpbnQgIiN7KGZhY3QobSkvZGVubyklbW9kfVxuIgp0PSB0IC0gMQplbmQ=
-
upload with new input
-
result: Success time: 0s memory: 4760 kB returned value: 0
1 AAabbb
60
-
result: Success time: 0s memory: 4760 kB returned value: 0
1 AAabAA
30
-
result: Success time: 0s memory: 4760 kB returned value: 0
4 ab aa aA AAbaz
2 1 2 60



