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
AC × 2
AC × 34
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