Submission #53204970


Source Code Expand

Copy
(N,M),*ABC = $<.map{|ln| ln.split.map(&:to_i) }
G = (N+1).times.map{|i| [[i,0]] }
F = lambda{|a|
G[a].kind_of?(Array) ? a : G[a] = F[G[a]]
}
U = lambda{|(a,b,c)| # a c b
ra,rb = F[a],F[b]
next if ra==rb
da = G[ra].find{|i,d| i==a }[1]
db = G[rb].find{|i,d| i==b }[1]
# db+c <=> da
if db+c<da # G[rb] G[ra] G[ra]
dd = da-(db+c)
G[ra].concat G[rb].map{|i,d|
[i,d+dd]
}
G[rb] = ra
else # G[ra] G[rb] G[rb]
dd = db+c-da
G[rb].concat G[ra].map{|i,d|
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(N,M),*ABC = $<.map{|ln| ln.split.map(&:to_i) }

G = (N+1).times.map{|i| [[i,0]] }
F = lambda{|a|
	G[a].kind_of?(Array) ? a : G[a] = F[G[a]]
}
U = lambda{|(a,b,c)| # a が c だけ b より後ろ
	ra,rb = F[a],F[b]
	next if ra==rb
	da = G[ra].find{|i,d| i==a }[1]
	db = G[rb].find{|i,d| i==b }[1]
	# db+c <=> da
	if db+c<da # G[rb] をずらして G[ra] に併合する。G[ra] の先頭の方が前にある。
		dd = da-(db+c)
		G[ra].concat G[rb].map{|i,d|
			[i,d+dd]
		}
		G[rb] = ra
	else # G[ra] をずらして G[rb] に併合する。G[rb] の先頭の方が前にある。
		dd = db+c-da
		G[rb].concat G[ra].map{|i,d|
			[i,d+dd]
		}
		G[ra] = rb
	end
}
ABC.each(&U)

G.shift
G.select!{|g| g.kind_of? Array }
G.map!{|g|
	[g,
	 g.inject(0){|m,(i,d)| m|1<<d },
	 [nil]*N
	]
}
G.sort_by!{_2}
H = G.inject(lambda{|_| true }){|nx,(g,m,ss)|
	sx = N-m.bit_length
	next Hash.new{|h,z|
		h[z] = ! (0..sx).select{|s|
			z&m<<s==0 && nx[z|m<<s]
		}.each{|s|
			ss[s] = s
		}.empty?
	}
}
H[0]

Ans = [-1]*(N+1)
G.each{|g,_,ss|
	s,ex = ss.compact
	g.each{|i,d|
		Ans[i] = s+1+d
	} if s && ! ex
}
puts Ans[1,N]*' '

Submission Info

Submission Time
Task F - Estimate Order
User ds14050
Language Ruby (ruby 3.2.2)
Score 525
Code Size 1169 Byte
Status AC
Exec Time 174 ms
Memory 20528 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 525 / 525
Status
AC × 3
AC × 62
Set Name Test Cases
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt, testcase37.txt, testcase38.txt, testcase39.txt, testcase40.txt, testcase41.txt, testcase42.txt, testcase43.txt, testcase44.txt, testcase45.txt, testcase46.txt, testcase47.txt, testcase48.txt, testcase49.txt, testcase50.txt, testcase51.txt, testcase52.txt, testcase53.txt, testcase54.txt, testcase55.txt, testcase56.txt, testcase57.txt, testcase58.txt
Case Name Status Exec Time Memory
sample00.txt AC 45 ms 17160 KB
sample01.txt AC 46 ms 16944 KB
sample02.txt AC 47 ms 17228 KB
testcase00.txt AC 46 ms 17076 KB
testcase01.txt AC 46 ms 17468 KB
testcase02.txt AC 46 ms 17584 KB
testcase03.txt AC 46 ms 17496 KB
testcase04.txt AC 46 ms 17272 KB
testcase05.txt AC 45 ms 17176 KB
testcase06.txt AC 46 ms 17572 KB
testcase07.txt AC 46 ms 17388 KB
testcase08.txt AC 46 ms 17216 KB
testcase09.txt AC 45 ms 17412 KB
testcase10.txt AC 46 ms 17464 KB
testcase11.txt AC 46 ms 17444 KB
testcase12.txt AC 46 ms 17460 KB
testcase13.txt AC 45 ms 17284 KB
testcase14.txt AC 45 ms 17560 KB
testcase15.txt AC 46 ms 17380 KB
testcase16.txt AC 45 ms 17284 KB
testcase17.txt AC 45 ms 17420 KB
testcase18.txt AC 46 ms 17476 KB
testcase19.txt AC 46 ms 17464 KB
testcase20.txt AC 46 ms 17432 KB
testcase21.txt AC 46 ms 17468 KB
testcase22.txt AC 46 ms 17408 KB
testcase23.txt AC 47 ms 17460 KB
testcase24.txt AC 46 ms 17260 KB
testcase25.txt AC 46 ms 17584 KB
testcase26.txt AC 47 ms 17336 KB
testcase27.txt AC 53 ms 17804 KB
testcase28.txt AC 53 ms 17792 KB
testcase29.txt AC 53 ms 17820 KB
testcase30.txt AC 63 ms 18192 KB
testcase31.txt AC 60 ms 18436 KB
testcase32.txt AC 68 ms 18268 KB
testcase33.txt AC 91 ms 18840 KB
testcase34.txt AC 74 ms 18580 KB
testcase35.txt AC 85 ms 18852 KB
testcase36.txt AC 119 ms 19388 KB
testcase37.txt AC 123 ms 20000 KB
testcase38.txt AC 124 ms 19772 KB
testcase39.txt AC 61 ms 18080 KB
testcase40.txt AC 147 ms 20248 KB
testcase41.txt AC 121 ms 19720 KB
testcase42.txt AC 164 ms 20528 KB
testcase43.txt AC 167 ms 20104 KB
testcase44.txt AC 164 ms 20100 KB
testcase45.txt AC 174 ms 20300 KB
testcase46.txt AC 173 ms 20204 KB
testcase47.txt AC 171 ms 20124 KB
testcase48.txt AC 76 ms 18552 KB
testcase49.txt AC 59 ms 18116 KB
testcase50.txt AC 107 ms 19276 KB
testcase51.txt AC 45 ms 17204 KB
testcase52.txt AC 45 ms 17216 KB
testcase53.txt AC 46 ms 17364 KB
testcase54.txt AC 46 ms 17420 KB
testcase55.txt AC 46 ms 17400 KB
testcase56.txt AC 46 ms 17400 KB
testcase57.txt AC 47 ms 17404 KB
testcase58.txt AC 47 ms 17572 KB


2025-04-21 (Mon)
05:51:08 +00:00