Submission #50102025
Source Code Expand
# お手本 https://atcoder.jp/contests/abc338/submissions/49757867
P = 998244353
class Num
def self.from_s s
len = 0
# 左端(ひだりはし)に起源があり現在地までに終わる値の和(lsum)。@=現在地
# -
# --
# ---@
lsum = val = 0
# 左側(ひだりがわ)に起源があり現在地で終わる値の和(rsum)とその累積和(sum)。@=現在地
# ---@
# --@
# -@
sum = rsum = 0
s.bytes{|d|
d -= 0x30
len += 1
lsum += val = (val*10+d)%P
sum += rsum = (rsum*10+d*len)%P
}
return new len,val,lsum,rsum,sum
end
def initialize *args
@len,@val,@lsum,@rsum,@sum = args.map{ _1%P }
end
attr_reader :len,:val,:lsum,:rsum,:sum
alias :inspect :sum
def + r
Num.new(
@len+r.len,
@val+r.val,
@lsum+r.lsum+@val*r.len,
r.rsum+@rsum+r.val*@len,
@sum+@rsum*r.len+r.sum+r.lsum*@len
)
end
def * r
Num.new(
@len+r.len,
@val*r.val,
@lsum+r.lsum*@val,
r.rsum+@rsum*r.val,
@sum+r.sum+@rsum*r.lsum
)
end
end
_ = Num.method:from_s
p eval gets.gsub(/[1-9]+/){ "_['#$&']" }
Submission Info
| Submission Time | |
|---|---|
| Task | G - evall |
| User | ds14050 |
| Language | Ruby (ruby 3.2.2) |
| Score | 600 |
| Code Size | 1127 Byte |
| Status | AC |
| Exec Time | 1759 ms |
| Memory | 660380 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 01-sample.txt, 02-sample.txt |
| All | 01-sample.txt, 02-sample.txt, 03-hidden.txt, 04-hidden.txt, 05-hidden.txt, 06-hidden.txt, 07-hidden.txt, 08-hidden.txt, 09-hidden.txt, 10-hidden.txt, 11-hidden.txt, 12-hidden.txt, 13-hidden.txt, 14-hidden.txt, 15-hidden.txt, 16-hidden.txt, 17-hidden.txt, 18-hidden.txt, 19-hidden.txt, 20-hidden.txt, 21-hidden.txt, 22-hidden.txt, 23-hidden.txt, 24-hidden.txt, 25-hidden.txt, 26-hidden.txt, 27-hidden.txt, 28-hidden.txt, 29-hidden.txt, 30-hidden.txt, 31-hidden.txt, 32-hidden.txt, 33-hidden.txt, 34-hidden.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-sample.txt | AC | 117 ms | 17180 KiB |
| 02-sample.txt | AC | 47 ms | 17156 KiB |
| 03-hidden.txt | AC | 46 ms | 17240 KiB |
| 04-hidden.txt | AC | 46 ms | 16808 KiB |
| 05-hidden.txt | AC | 149 ms | 69328 KiB |
| 06-hidden.txt | AC | 1754 ms | 660328 KiB |
| 07-hidden.txt | AC | 1759 ms | 660380 KiB |
| 08-hidden.txt | AC | 1714 ms | 531276 KiB |
| 09-hidden.txt | AC | 146 ms | 75100 KiB |
| 10-hidden.txt | AC | 147 ms | 74832 KiB |
| 11-hidden.txt | AC | 904 ms | 339928 KiB |
| 12-hidden.txt | AC | 1293 ms | 448376 KiB |
| 13-hidden.txt | AC | 1220 ms | 362368 KiB |
| 14-hidden.txt | AC | 1723 ms | 531384 KiB |
| 15-hidden.txt | AC | 1313 ms | 448236 KiB |
| 16-hidden.txt | AC | 903 ms | 275808 KiB |
| 17-hidden.txt | AC | 116 ms | 24656 KiB |
| 18-hidden.txt | AC | 470 ms | 154076 KiB |
| 19-hidden.txt | AC | 114 ms | 25520 KiB |
| 20-hidden.txt | AC | 116 ms | 25152 KiB |
| 21-hidden.txt | AC | 115 ms | 24280 KiB |
| 22-hidden.txt | AC | 124 ms | 25956 KiB |
| 23-hidden.txt | AC | 150 ms | 31264 KiB |
| 24-hidden.txt | AC | 184 ms | 41836 KiB |
| 25-hidden.txt | AC | 689 ms | 181092 KiB |
| 26-hidden.txt | AC | 386 ms | 101108 KiB |
| 27-hidden.txt | AC | 278 ms | 86852 KiB |
| 28-hidden.txt | AC | 289 ms | 81312 KiB |
| 29-hidden.txt | AC | 224 ms | 82776 KiB |
| 30-hidden.txt | AC | 142 ms | 68468 KiB |
| 31-hidden.txt | AC | 126 ms | 46188 KiB |
| 32-hidden.txt | AC | 159 ms | 50708 KiB |
| 33-hidden.txt | AC | 49 ms | 17376 KiB |
| 34-hidden.txt | AC | 47 ms | 17540 KiB |