Submission #43935918


Source Code Expand

(N,M),*AB = $<.map{|ln| ln.split.map(&:to_i) }
E = Array.new(N+1){[]}
AB.each{|a,b|
	E[a]<<b
}
J = lambda{|ps|
	a,*as = ps[0]
	until a==as[0]
		as<<a
		bs = E[a].select{|b| ps.index b }
		break as.clear if bs.size!=1
		a, = bs
	end
	if as.size!=ps.size
		warn "NO (#{as.size}/#{ps.size})"
		warn as.inspect
		warn ps.map{|a|
			[a,E[a].select{|b| ps.index b }]
		}.to_h.inspect
	else
		warn 'YES'
	end
}
D = [nil]*(N+1)
F = lambda{|a,ps=[],vs={}|
	if vs[a]
		ps.shift(vs[a]).each{|b| vs.delete b }
		next true
	elsif ! D[a]
		D[a] = a
		vs[a] = ps.size
		ps<<a
		if E[a].any?{|b|
			F[b,ps,vs]
		} then
			next true
		else
			vs.delete a
			ps.pop
			next
		end
	else
	end
}
C = lambda{|ps|
	qs = []
	while a = ps.shift
		qs<<a
		if i = E[a].filter_map{|b| qs.index b }.max
			qs.shift i
			break
		end
		if i = E[a].filter_map{|b| ps.index b }.max
			ps.shift i
		end
	end
	next qs
}
(1..N).each{|a|
	ps = []
	if F[a,ps]
		ps = C[ps]
#		J[ps]
		puts ps.size,ps
		exit
	end
}
p~0

Submission Info

Submission Time
Task F - Pure
User ds14050
Language Ruby (2.7.1)
Score 600
Code Size 1048 Byte
Status AC
Exec Time 69 ms
Memory 15468 KiB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 33
Set Name Test Cases
Sample Sample_01.txt, Sample_02.txt, Sample_03.txt
Subtask1 Sample_01.txt, Sample_02.txt, Sample_03.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, case_28.txt, case_29.txt, case_30.txt
Case Name Status Exec Time Memory
Sample_01.txt AC 58 ms 14072 KiB
Sample_02.txt AC 56 ms 14172 KiB
Sample_03.txt AC 61 ms 14008 KiB
case_01.txt AC 62 ms 14200 KiB
case_02.txt AC 58 ms 14116 KiB
case_03.txt AC 55 ms 14140 KiB
case_04.txt AC 56 ms 14228 KiB
case_05.txt AC 61 ms 14256 KiB
case_06.txt AC 62 ms 14016 KiB
case_07.txt AC 58 ms 14092 KiB
case_08.txt AC 59 ms 14236 KiB
case_09.txt AC 58 ms 14308 KiB
case_10.txt AC 59 ms 14308 KiB
case_11.txt AC 62 ms 14136 KiB
case_12.txt AC 60 ms 14152 KiB
case_13.txt AC 60 ms 14220 KiB
case_14.txt AC 60 ms 14216 KiB
case_15.txt AC 58 ms 14324 KiB
case_16.txt AC 56 ms 14232 KiB
case_17.txt AC 56 ms 14184 KiB
case_18.txt AC 60 ms 14184 KiB
case_19.txt AC 60 ms 15380 KiB
case_20.txt AC 60 ms 15244 KiB
case_21.txt AC 59 ms 15316 KiB
case_22.txt AC 58 ms 15428 KiB
case_23.txt AC 59 ms 15332 KiB
case_24.txt AC 59 ms 15264 KiB
case_25.txt AC 63 ms 15468 KiB
case_26.txt AC 65 ms 15148 KiB
case_27.txt AC 64 ms 15312 KiB
case_28.txt AC 69 ms 15264 KiB
case_29.txt AC 63 ms 15348 KiB
case_30.txt AC 58 ms 14800 KiB