Submission #26559753
Source Code Expand
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
N = gets.to_i
M = 10**9+7
E = Array.new(N){{}}
$<.each{|ln|
a,b = ln.split.map{_1.to_i-1}
E[a][b] = nil
E[b][a] = nil
}
D = E.map(&:size)
C = lambda{|max|
num,dnm = [1,1],[1,1]
2.upto(max){|n|
num << num[-1]*n%M
dnm << M - dnm[M%n]*(M/n)%M # 謎
}
1.upto(dnm.size-1){|n|
dnm[n] = dnm[n-1]*dnm[n]%M # 謎
}
next lambda{|n,r|
num[n]*dnm[r]*dnm[n-r]%M
}
}.call N
P = [nil]*N
Q = N.times.select{ D[_1]<2 }
while a = Q.pop
pr,nd = 1,0
E[a].each{|b,(pr2,nd2)|
if pr2
pr = pr*pr2*C[nd+nd2,nd]%M
nd += nd2
else
P[a] = b
end
}
break unless P[a]
E[P[a]][a] = [pr,nd+1]
Q << P[a] if 1 == D[P[a]] -= 1
end
Q << a
while a = Q.pop
pr,nd = 1,0
E[a].each{|b,(pr2,nd2)|
pr = pr*pr2*C[nd+nd2,nd]%M
nd += nd2
}
E[a].each{|b,(pr2,nd2)|
next if b==P[a]
E[b][a] = [pr*pr2.pow(M-2,M)*C[nd,nd2].pow(M-2,M)%M,nd-nd2+1]
Q << b
}
end
puts E.map{|bs|
bs.values.inject([1,0]){|(pr,nd),(pr2,nd2)|
next pr*pr2*C[nd+nd2,nd]%M,nd+nd2
}[0]
}
Submission Info
Submission Time |
|
Task |
F - Distributing Integers |
User |
ds14050 |
Language |
Ruby (2.7.1) |
Score |
600 |
Code Size |
1028 Byte |
Status |
AC |
Exec Time |
1548 ms |
Memory |
101476 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
600 / 600 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All |
line_01.txt, line_02_shuffled.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06_shuffled.txt, random_07_shuffled.txt, random_08_shuffled.txt, random_09_shuffled.txt, random_10.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, star_01.txt, star_02_shuffled.txt |
Case Name |
Status |
Exec Time |
Memory |
line_01.txt |
AC |
329 ms |
33864 KB |
line_02_shuffled.txt |
AC |
373 ms |
33880 KB |
random_01.txt |
AC |
1525 ms |
84104 KB |
random_02.txt |
AC |
1532 ms |
83912 KB |
random_03.txt |
AC |
1547 ms |
83272 KB |
random_04.txt |
AC |
1543 ms |
84048 KB |
random_05.txt |
AC |
1511 ms |
83400 KB |
random_06_shuffled.txt |
AC |
1542 ms |
84132 KB |
random_07_shuffled.txt |
AC |
1548 ms |
84068 KB |
random_08_shuffled.txt |
AC |
1526 ms |
84168 KB |
random_09_shuffled.txt |
AC |
1538 ms |
84052 KB |
random_10.txt |
AC |
1538 ms |
84104 KB |
sample_01.txt |
AC |
56 ms |
13968 KB |
sample_02.txt |
AC |
56 ms |
14156 KB |
sample_03.txt |
AC |
58 ms |
14076 KB |
sample_04.txt |
AC |
57 ms |
14128 KB |
star_01.txt |
AC |
1068 ms |
101476 KB |
star_02_shuffled.txt |
AC |
1380 ms |
101356 KB |