Submission #63857023


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] = @a[i+i,2].max
		}
		@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 = [v,@a[i]].max
		else
			j = i+i
			m = l+(r-l)/2
			unless @b[i]==0
				@a[j] += @b[i]
				@b[j] += @b[i]
				@a[j+1] += @b[i]
				@b[j+1] += @b[i]
				@b[i] = 0
			end
			v = get(j,l,m,ql,qr,v) if ql<m
			v = 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] += v
			@b[i] += v
		else
			j = i+i
			m = l+(r-l)/2
			unless @b[i]==0
				@a[j] += @b[i]
				@b[j] += @b[i]
				@a[j+1] += @b[i]
				@b[j+1] += @b[i]
				@b[i] = 0
			end
			set(j,l,m,ql,qr,v) if ql<m
			set(j+1,m,r,ql,qr,v) if m<qr
			@a[i] = @a[j,2].max
		end
	end
end

N,*A = $<.read.split.map(&:to_i)

L,R = Hash.new(0),A.tally
I = Array.new(N+1){[]}
A.each_with_index{|a,i|
	I[a]<<i
}
D = [0]*N
I.each{|is|
	if is[1]
		D[is[0]] += 1
		D[is[-1]] -= 1
	end
}
b = 0
B = D.map{ b += _1 }
この区間で切ったら種類数が減らない = ST.new B,0,0
p A[0,N-2].map{|a|
	L[a] += 1
	R.delete a if 0==R[a] -= 1
	i = I[a].shift
	この区間で切ったら種類数が減らない[i,I[a][0]-1] = -1 if I[a][0]
	L.size+R.size+この区間で切ったら種類数が減らない[i+1,N-2]
}.max

Submission Info

Submission Time
Task F - Variety Split Hard
User ds14050
Language Ruby (ruby 3.2.2)
Score 550
Code Size 1636 Byte
Status AC
Exec Time 1949 ms
Memory 108512 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 2
AC × 44
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 132 ms 17376 KiB
00_sample_01.txt AC 44 ms 17624 KiB
01_test_00.txt AC 47 ms 17824 KiB
01_test_01.txt AC 48 ms 17916 KiB
01_test_02.txt AC 49 ms 17776 KiB
01_test_03.txt AC 48 ms 17732 KiB
01_test_04.txt AC 47 ms 17880 KiB
01_test_05.txt AC 355 ms 38360 KiB
01_test_06.txt AC 1410 ms 94056 KiB
01_test_07.txt AC 877 ms 70288 KiB
01_test_08.txt AC 1392 ms 94436 KiB
01_test_09.txt AC 883 ms 70936 KiB
01_test_10.txt AC 1395 ms 94304 KiB
01_test_11.txt AC 432 ms 38164 KiB
01_test_12.txt AC 1426 ms 94188 KiB
01_test_13.txt AC 1169 ms 82976 KiB
01_test_14.txt AC 1383 ms 94124 KiB
01_test_15.txt AC 1949 ms 86308 KiB
01_test_16.txt AC 1214 ms 85472 KiB
01_test_17.txt AC 1802 ms 88676 KiB
01_test_18.txt AC 1168 ms 88500 KiB
01_test_19.txt AC 1662 ms 88060 KiB
01_test_20.txt AC 1126 ms 87736 KiB
01_test_21.txt AC 1563 ms 93592 KiB
01_test_22.txt AC 1075 ms 93668 KiB
01_test_23.txt AC 1468 ms 94380 KiB
01_test_24.txt AC 1048 ms 91608 KiB
01_test_25.txt AC 1257 ms 81356 KiB
01_test_26.txt AC 1263 ms 79720 KiB
01_test_27.txt AC 1269 ms 82616 KiB
01_test_28.txt AC 1256 ms 82884 KiB
01_test_29.txt AC 1292 ms 81240 KiB
01_test_30.txt AC 1268 ms 81952 KiB
01_test_31.txt AC 844 ms 107244 KiB
01_test_32.txt AC 876 ms 105408 KiB
01_test_33.txt AC 43 ms 17136 KiB
01_test_34.txt AC 41 ms 17324 KiB
01_test_35.txt AC 1031 ms 94144 KiB
01_test_36.txt AC 1259 ms 83076 KiB
01_test_37.txt AC 1291 ms 78944 KiB
01_test_38.txt AC 832 ms 106772 KiB
01_test_39.txt AC 840 ms 108512 KiB
01_test_40.txt AC 846 ms 107228 KiB
01_test_41.txt AC 835 ms 108508 KiB