提出 #48039671


ソースコード 拡げる

class ST
	def initialize a1,a2,e1,e2,&op
		@l = (1<<(a1.size-1).bit_length)
		@a1 = [e1]*@l+a1
		@a2 = [e2]*@l+a2
		@a1<<e1
		@a2<<e2
		@op = op
		((@l+a1.size-1)/2).downto(1){|i|
			@a1[i],@a2[i] = @op[@a1[i+i,2],@a2[i+i,2]]
		}
	end

	def val1 i=nil
		@a1[i ? @l+i : 1]
	end
	def val2 i=nil
		@a2[i ? @l+i : 1]
	end

	def []= i,(v1,v2)
		i += @l
		@a1[i] = v1
		@a2[i] = v2
		@a1[i],@a2[i] = @op[@a1[i+i,2],@a2[i+i,2]] while 0<i/=2
		return v1,v2
	end
end

P,Q,K = 998244353,*gets.split.map(&:to_i)
Qry = Q.times.map{ q = gets; q[1] = ?0; q.to_i }
X = Qry.map(&:abs).uniq.sort
I = X.each_with_index.to_h
IK = K.pow P-2,P
PK = Q.times.inject([1]){|p,| p<<p[-1]*K%P }

F = ST.new([0]*X.size,[0]*X.size,0,0){|(cl,cr),(sl,sr)| [cl+cr,(sl+PK[cl]*sr)%P] }
puts Qry.map{|x|
	i = I[x.abs]
	c = F.val1 i
	s = F.val2 i
	F[i] = 0<x ? [c+1,(x+K*s)%P] : [c-1,(s+x)*IK%P]
	next F.val2
}

提出情報

提出日時
問題 N - ソートと関数
ユーザ ds14050
言語 Ruby (ruby 3.2.2)
得点 6
コード長 919 Byte
結果 AC
実行時間 2135 ms
メモリ 81656 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 6 / 6
結果
AC × 1
AC × 41
セット名 テストケース
Sample sample_01.txt
All sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 45 ms 17408 KiB
test_01.txt AC 43 ms 17108 KiB
test_02.txt AC 286 ms 20172 KiB
test_03.txt AC 580 ms 28308 KiB
test_04.txt AC 193 ms 21920 KiB
test_05.txt AC 491 ms 23084 KiB
test_06.txt AC 275 ms 20096 KiB
test_07.txt AC 1284 ms 51588 KiB
test_08.txt AC 187 ms 21952 KiB
test_09.txt AC 190 ms 20012 KiB
test_10.txt AC 755 ms 23628 KiB
test_11.txt AC 1630 ms 57676 KiB
test_12.txt AC 186 ms 21888 KiB
test_13.txt AC 75 ms 18064 KiB
test_14.txt AC 647 ms 23184 KiB
test_15.txt AC 1300 ms 52816 KiB
test_16.txt AC 67 ms 18220 KiB
test_17.txt AC 514 ms 24032 KiB
test_18.txt AC 753 ms 25476 KiB
test_19.txt AC 495 ms 26984 KiB
test_20.txt AC 92 ms 18472 KiB
test_21.txt AC 734 ms 26300 KiB
test_22.txt AC 1066 ms 27160 KiB
test_23.txt AC 1835 ms 54500 KiB
test_24.txt AC 348 ms 29892 KiB
test_25.txt AC 674 ms 28324 KiB
test_26.txt AC 1123 ms 27620 KiB
test_27.txt AC 2103 ms 81656 KiB
test_28.txt AC 348 ms 28352 KiB
test_29.txt AC 681 ms 28384 KiB
test_30.txt AC 1112 ms 29976 KiB
test_31.txt AC 2122 ms 80672 KiB
test_32.txt AC 350 ms 29068 KiB
test_33.txt AC 634 ms 28392 KiB
test_34.txt AC 984 ms 26912 KiB
test_35.txt AC 2135 ms 80868 KiB
test_36.txt AC 349 ms 28888 KiB
test_37.txt AC 730 ms 28436 KiB
test_38.txt AC 1060 ms 29964 KiB
test_39.txt AC 1649 ms 51932 KiB
test_40.txt AC 348 ms 29308 KiB