Submission #63853706


Source Code Expand

class ST
	def initialize a,e,op
		@l = 1<<(a.size-1).bit_length
		@a = Array.new(@l){ e.dup }
		@a.concat a
		@a.concat [e]*(@l-a.size)
		(@l-1).downto(1){|i|
			@a[i].from(*@a[i+i,2])
		}
		@b = @a.map{ op.dup }
		@e = e
	end

	def [] l,r=l
		get 1,0,@l,l,r+1,@e.dup if l<=r
	end

	def []= l,r=l,v
		set 1,0,@l,l,r+1,v if l<=r
	end

private
	def get i,l,r,ql,qr,v
		if qr<=l || r<=ql
		elsif ql<=l && r<=qr
			v.concat @a[i]
		else
			j = i+i
			m = l+(r-l)/2
			unless @b[i].nop?
				@a[j].apply @b[i]
				@b[j].merge @b[i]
				@a[j+1].apply @b[i]
				@b[j+1].merge @b[i]
				@b[i].nop!
			end
			get(j,l,m,ql,qr,v) if ql<m
			get(j+1,m,r,ql,qr,v) if m<qr
		end
		return v
	end

	def set i,l,r,ql,qr,v
		if qr<=l || r<=ql
		elsif ql<=l && r<=qr
			@a[i].apply v
			@b[i].merge v
		else
			j = i+i
			m = l+(r-l)/2
			unless @b[i].nop?
				@a[j].apply @b[i]
				@b[j].merge @b[i]
				@a[j+1].apply @b[i]
				@b[j+1].merge @b[i]
				@b[i].nop!
			end
			set(j,l,m,ql,qr,v) if ql<m
			set(j+1,m,r,ql,qr,v) if m<qr
			@a[i].from(*@a[j,2])
		end
	end
end

P = 998244353

class Seg
	def initialize x
		@x = x
	end
	attr_reader :x

	def from l,r
		@x = [l.x,r.x].max
		self
	end
	def concat r
		@x = [@x,r.x].max
		self
	end
	def apply op
		@x += op.v
		self
	end
end
class Op
	def initialize v
		@v = v
	end
	attr_reader :v

	def nop?
		@v==0
	end

	def nop!
		@v = 0
		self
	end
	def merge other
		@v += other.v
		self
	end
end

N,*A = $<.read.split.map(&:to_i)
I = Array.new(N+1){[]}
A.each_with_index{|a,i|
	I[a]<<i
}
この区間で切ったら種類数が減らない = ST.new Array.new(N){ Seg.new 0 },Seg.new(0),Op.new(0)
I.each{|is|
	この区間で切ったら種類数が減らない[is[0],is[-1]-1] = Op.new(1) if 1<is.size
}
L,R = {},A.tally
L.default = R.default = 0
l,r = 0,R.size
p A[0,N-2].map.with_index{|a,i|
	l += 1 if 1==L[a] += 1
	r -= 1 if 0==R[a] -= 1
	I[a].shift
	この区間で切ったら種類数が減らない[i,I[a][0]-1] = Op.new(-1) if I[a][0]
	l+r+この区間で切ったら種類数が減らない[i+1,N-2].x
}.max

Submission Info

Submission Time
Task F - Variety Split Hard
User ds14050
Language Ruby (ruby 3.2.2)
Score 0
Code Size 2171 Byte
Status TLE
Exec Time 2222 ms
Memory 219504 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 550
Status
AC × 2
AC × 31
TLE × 13
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 46 ms 17360 KiB
00_sample_01.txt AC 49 ms 17792 KiB
01_test_00.txt AC 54 ms 17764 KiB
01_test_01.txt AC 51 ms 17612 KiB
01_test_02.txt AC 55 ms 17948 KiB
01_test_03.txt AC 54 ms 17764 KiB
01_test_04.txt AC 52 ms 17704 KiB
01_test_05.txt AC 796 ms 63200 KiB
01_test_06.txt TLE 2218 ms 212572 KiB
01_test_07.txt AC 1855 ms 115784 KiB
01_test_08.txt TLE 2219 ms 212844 KiB
01_test_09.txt AC 1931 ms 116124 KiB
01_test_10.txt TLE 2222 ms 212724 KiB
01_test_11.txt AC 897 ms 63540 KiB
01_test_12.txt TLE 2221 ms 212508 KiB
01_test_13.txt TLE 2213 ms 124564 KiB
01_test_14.txt TLE 2218 ms 212748 KiB
01_test_15.txt TLE 2218 ms 209408 KiB
01_test_16.txt AC 1964 ms 209568 KiB
01_test_17.txt TLE 2219 ms 210144 KiB
01_test_18.txt AC 1953 ms 214164 KiB
01_test_19.txt TLE 2218 ms 208664 KiB
01_test_20.txt AC 1909 ms 213508 KiB
01_test_21.txt TLE 2221 ms 212440 KiB
01_test_22.txt AC 1874 ms 219480 KiB
01_test_23.txt TLE 2218 ms 210548 KiB
01_test_24.txt AC 1828 ms 219348 KiB
01_test_25.txt AC 1885 ms 201060 KiB
01_test_26.txt AC 1923 ms 200772 KiB
01_test_27.txt AC 1905 ms 201124 KiB
01_test_28.txt AC 1904 ms 201064 KiB
01_test_29.txt AC 1884 ms 200972 KiB
01_test_30.txt AC 1906 ms 201028 KiB
01_test_31.txt AC 1451 ms 189200 KiB
01_test_32.txt AC 1556 ms 189284 KiB
01_test_33.txt AC 45 ms 17404 KiB
01_test_34.txt AC 46 ms 17488 KiB
01_test_35.txt AC 1788 ms 219504 KiB
01_test_36.txt TLE 2009 ms 206248 KiB
01_test_37.txt TLE 2074 ms 200912 KiB
01_test_38.txt AC 1443 ms 189164 KiB
01_test_39.txt AC 1455 ms 189196 KiB
01_test_40.txt AC 1450 ms 189272 KiB
01_test_41.txt AC 1457 ms 189160 KiB