(I2
I113
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include<iostream>\r\n#include<cstdio>\r\n#include<algorithm>\r\n#include<cmath>\r\n#include<queue>\r\n#include<vector>\r\n#include<stack>\r\n#include<limits.h>\r\nusing namespace std;\r\ntypedef long long ll;\r\nconst ll Q=10000000007;\r\nll n,a,b,A,B,which_set[64],ans,br[4];\r\nll fact(ll x)\r\n{\r\n    ll rt=1;\r\n    for(ll i=1;i<=x;i++)\r\n        rt=rt*i%Q;\r\n    //cout<<rt<<endl;\r\n    return rt;\r\n}\r\nll comb(ll x,ll y)\r\n{\r\n    if(y==0)return 0;\r\n    ll rt=1;\r\n    for(ll i=x;i>=x-y+1;i--)\r\n        rt=(rt*i)%Q;\r\n    return (rt/fact(y))%Q;\r\n}\r\nint main()\r\n{\r\n    cin>>n>>a;\r\n    for(ll i=1;i<=a;i++)\r\n    {\r\n        cin>>A;\r\n        which_set[A]=1;\r\n    }\r\n    cin>>b;\r\n    for(ll i=1;i<=b;i++)\r\n    {\r\n        cin>>B;\r\n        which_set[B]=1;\r\n    }\r\n    br[1]+=a;\r\n    br[2]+=b;\r\n    ll br3=0,brc=2*n-a-b;\r\n    for(ll i=1;i<=n*2;i++)\r\n    {\r\n        if(which_set[i]!=0)\r\n        {\r\n            br[which_set[i]]+=br3;\r\n            break;\r\n        }\r\n        br3++;\r\n        brc--;\r\n    }\r\n    br3=0;\r\n    for(ll i=n*2;i>=1;i--)\r\n    {\r\n        if(which_set[i]!=0)\r\n        {\r\n            br[which_set[i]]+=br3;\r\n            break;\r\n        }\r\n        br3++;\r\n        brc--;\r\n    }\r\n    //cout<<brc<<" "<<max(n-br[1],n-br[2])<<endl;\r\n    if(n-br[1]==0)ans=comb(brc,n-br[2]);\r\n    else if(n-br[2]==0)ans=comb(brc,n-br[1]);\r\n    else ans=comb(brc,((n-br[1])*(n-br[2])));\r\n    cout<<ans<<endl;\r\n    return 0;\r\n}'
p3
tp4
stp5
.