Submission #43942246
Source Code Expand
P = 10**9+7
S = gets.chomp.bytes
Q = S.inject([0]){|s,b| s<<s[-1]+(b==63 ? 1 : 0) }
A = S.inject([0]){|s,b| s<<s[-1]+(b==65 ? 1 : 0) }
C = S.reverse_each.inject([0]){|s,b| s<<s[-1]+(b==67 ? 1 : 0) }
C.pop
p S.sum{|b|
q = Q.shift
a = A.shift
c = C.pop
qr = Q[-1]-q
qr -= 1 if b==63
ka = a*3.pow(q,P)
ka += q*3.pow(q-1,P) if 0<q
kb = b==65||b==67 ? 0 : 1
kc = c*3.pow(qr,P)
kc += qr*3.pow(qr-1,P) if 0<qr
next ka*kb*kc
}%P
Submission Info
| Submission Time | |
|---|---|
| Task | D - We Love ABC |
| User | ds14050 |
| Language | Ruby (2.7.1) |
| Score | 400 |
| Code Size | 451 Byte |
| Status | AC |
| Exec Time | 220 ms |
| Memory | 18244 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | a01, a02, a03 |
| All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| a01 | AC | 61 ms | 14032 KiB |
| a02 | AC | 56 ms | 14108 KiB |
| a03 | AC | 57 ms | 14064 KiB |
| b04 | AC | 57 ms | 14152 KiB |
| b05 | AC | 55 ms | 14208 KiB |
| b06 | AC | 55 ms | 14104 KiB |
| b07 | AC | 56 ms | 14152 KiB |
| b08 | AC | 53 ms | 14168 KiB |
| b09 | AC | 56 ms | 14220 KiB |
| b10 | AC | 107 ms | 17980 KiB |
| b11 | AC | 220 ms | 18200 KiB |
| b12 | AC | 109 ms | 18152 KiB |
| b13 | AC | 105 ms | 18208 KiB |
| b14 | AC | 115 ms | 18108 KiB |
| b15 | AC | 116 ms | 18244 KiB |
| b16 | AC | 122 ms | 18048 KiB |
| b17 | AC | 121 ms | 18216 KiB |
| b18 | AC | 75 ms | 14716 KiB |
| b19 | AC | 57 ms | 14236 KiB |
| b20 | AC | 86 ms | 15012 KiB |
| b21 | AC | 208 ms | 18060 KiB |
| b22 | AC | 209 ms | 18224 KiB |
| b23 | AC | 191 ms | 18116 KiB |