import sequtils,strutils,random,algorithm,math var N : int P : seq[float64] l1 = stdin.readline.split va : int C : array[2, seq[int]] N = l1[0].parseInt P = l1[1..2].map(parsefloat) C[0] = stdin.readline.split.map(parseInt) C[1] = stdin.readline.split.map(parseInt) for i in 0..1: C[i].sort(system.cmp) randomize() proc main : bool= var F : array[2,array[20, bool]] c : array[2, int] cnt : int for n in 1..<N: for i in 0..1: if random(1.0) <= P[i]: for j in 0..<N: if F[i][j] == false: c[i] = C[i][j] F[i][j] = true break else: var c2 = newSeq[int](0) t : bool for j in 0..<N: if F[i][j] == false and t: c2.add(C[i][j]) elif F[i][j] == false: t = true c[i] = random(c2) for j in 0..<N: if c[i] == C[i][j]: F[i][j] = true break #echo c[0..1] if c[0] > c[1]: cnt += c[0] + c[1] else: cnt -= c[0] + c[1] for i in 0..1: for j in 0..<N: if F[i][j] == false: c[i] = C[i][j] if c[0] > c[1]: cnt += c[0] + c[1] else: cnt -= c[0] + c[1] if cnt > 0: return true for n in 1..100000: if main(): va += 1 echo va / 100000