Submission #23510943
Source Code Expand
N = gets.to_i
S2 = [nil]*N
Q = gets.to_i.times.map{
gets.split.map(&:to_i).tap{|t,x,y,v|
S2[x] = v if t<1
}
}
D3 = S2.each_cons(2).map{|s1,s2| s1&&s2&&s2-s1 }
Sd = D3.inject([0,0]){|s,d| s<<(d ? d+s[-2] : 0) }
G,F,U = [-1]*(N+1),
lambda{|a|
G[a]<0 ? a : G[a] = F[G[a]]
},lambda{|a,b|
a,b = F[a],F[b]
next if a==b
a,b = b,a if G[b]<G[a]
G[a] += G[b]
G[b] = a
}
Q.each{|t,x,y,v|
if t<1
U[x,y]
elsif F[x]!=F[y]
puts'Ambiguous'
elsif x==y
p v
elsif x<y
v += Sd[x+(y-x)/2*2]-Sd[x] if x+1<y
p(x&1==y&1 ? v : S2[y-1]-v)
elsif y<x
d = y+1<x ? Sd[y+(x-y)/2*2]-Sd[y] : 0
p(x&1==y&1 ? v-d : S2[x-1]-v-d)
end
}
Submission Info
| Submission Time |
|
| Task |
068 - Paired Information(★5) |
| User |
ds14050 |
| Language |
Ruby (2.7.1) |
| Score |
5 |
| Code Size |
669 Byte |
| Status |
AC |
| Exec Time |
413 ms |
| Memory |
31888 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
5 / 5 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_0.txt, 00_sample_1.txt |
| All |
00_sample_0.txt, 00_sample_1.txt, 01_random_0.txt, 01_random_1.txt, 01_random_2.txt, 01_random_3.txt, 01_random_4.txt, 01_random_5.txt, 01_random_6.txt, 01_random_7.txt, 02_maxima_0.txt, 02_maxima_1.txt, 02_maxima_2.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_0.txt |
AC |
63 ms |
14136 KiB |
| 00_sample_1.txt |
AC |
64 ms |
14036 KiB |
| 01_random_0.txt |
AC |
331 ms |
31340 KiB |
| 01_random_1.txt |
AC |
381 ms |
31888 KiB |
| 01_random_2.txt |
AC |
355 ms |
31604 KiB |
| 01_random_3.txt |
AC |
413 ms |
30452 KiB |
| 01_random_4.txt |
AC |
284 ms |
28276 KiB |
| 01_random_5.txt |
AC |
268 ms |
26156 KiB |
| 01_random_6.txt |
AC |
277 ms |
28348 KiB |
| 01_random_7.txt |
AC |
407 ms |
30404 KiB |
| 02_maxima_0.txt |
AC |
317 ms |
30652 KiB |
| 02_maxima_1.txt |
AC |
319 ms |
31004 KiB |
| 02_maxima_2.txt |
AC |
356 ms |
31428 KiB |