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