#include #include #include #include #include #include #include #include #include #include #define rep(index,num) for(int index=0;index>argument #define prin(argument) cout< pll; typedef pair pint; typedef vector vint; typedef vector vll; typedef vector vpint; typedef vector vpll; ll INFl=1e+18+1; int INF=1e+9+1; int kaijo(int m){ int ans=1; rep1(i,m){ ans*=i; } return ans; } int main(){ //https://yukicoder.me/problems/199 int N; int A[4],B[4]; scan(N); rep(i,N) scan(A[i]); rep(i,N) scan(B[i]); int siai=kaijo(N)*kaijo(N); int Awinnum=0; vint Ajun; rep(i,N) Ajun.push_back(i); do{ vint Bjun; rep(i,N) Bjun.push_back(i); do{ int Awin=0; rep(i,N){ if(A[Ajun[i]]>B[Bjun[i]]) Awin++; } if(Awin>N/2) Awinnum++; }while(next_permutation(Bjun.begin(),Bjun.end())); }while(next_permutation(Ajun.begin(),Ajun.end())); double ans=(double)Awinnum/siai; prin(ans); return 0; }