#include using namespace std; unsigned long long xor64() { static unsigned long long x = (unsigned long long)(chrono::duration_cast( chrono::high_resolution_clock::now().time_since_epoch()).count()) * 10150724397891781847ULL; x ^= x << 7; return x ^= x >> 9; } int main(){ int n, v; double da, db; cin >> n >> da >> db; // 0.5 や 0.75 のように桁数が 3 桁未満でも正しく千分率に変換する int pa = (int)llround(da * 1000), pb = (int)llround(db * 1000); set Sa, Sb; for(int i = 0; i < n; i++){ cin >> v; Sa.insert(v); } for(int i = 0; i < n; i++){ cin >> v; Sb.insert(v); } auto select = [&](set S, int p){ int v; if(S.size() == 1 || xor64() % 1000 < p)v = *S.begin(); else{ int cnt = xor64() % (S.size() - 1) + 1; auto it = S.begin(); for(int i = 0; i < cnt; i++)it++; v = *it; } return v; }; auto f = [&](set A, set B){ int va, vb, as = 0, bs = 0; for(int i = 0; i < n; i++){ va = select(A, pa); vb = select(B, pb); A.erase(va), B.erase(vb); if(va > vb)as += va + vb; else bs += va + vb; } return (as > bs); }; int cnt = 0, m = 100000; for(int i = 0; i < m; i++){ cnt += f(Sa, Sb); } printf("%.15lf\n", double(cnt) / m); }