Submission #50102025


Source Code Expand

Copy
# 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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# お手本 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 KB

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 KB
02-sample.txt AC 47 ms 17156 KB
03-hidden.txt AC 46 ms 17240 KB
04-hidden.txt AC 46 ms 16808 KB
05-hidden.txt AC 149 ms 69328 KB
06-hidden.txt AC 1754 ms 660328 KB
07-hidden.txt AC 1759 ms 660380 KB
08-hidden.txt AC 1714 ms 531276 KB
09-hidden.txt AC 146 ms 75100 KB
10-hidden.txt AC 147 ms 74832 KB
11-hidden.txt AC 904 ms 339928 KB
12-hidden.txt AC 1293 ms 448376 KB
13-hidden.txt AC 1220 ms 362368 KB
14-hidden.txt AC 1723 ms 531384 KB
15-hidden.txt AC 1313 ms 448236 KB
16-hidden.txt AC 903 ms 275808 KB
17-hidden.txt AC 116 ms 24656 KB
18-hidden.txt AC 470 ms 154076 KB
19-hidden.txt AC 114 ms 25520 KB
20-hidden.txt AC 116 ms 25152 KB
21-hidden.txt AC 115 ms 24280 KB
22-hidden.txt AC 124 ms 25956 KB
23-hidden.txt AC 150 ms 31264 KB
24-hidden.txt AC 184 ms 41836 KB
25-hidden.txt AC 689 ms 181092 KB
26-hidden.txt AC 386 ms 101108 KB
27-hidden.txt AC 278 ms 86852 KB
28-hidden.txt AC 289 ms 81312 KB
29-hidden.txt AC 224 ms 82776 KB
30-hidden.txt AC 142 ms 68468 KB
31-hidden.txt AC 126 ms 46188 KB
32-hidden.txt AC 159 ms 50708 KB
33-hidden.txt AC 49 ms 17376 KB
34-hidden.txt AC 47 ms 17540 KB


2025-04-15 (Tue)
12:12:15 +00:00