(I2
I121
I6
(dp0
Vtable.%l
p1
(Vtable slow.cpp
p2
S'#include <bits/stdc++.h>\r\n\r\nusing namespace std;\r\n\r\nint n,asz,bsz,csz;\r\nint givea,giveb;\r\nbool here[128];\r\nint a[128],b[128],c[128];\r\nlong long ans;\r\nint ga[128],gasz,gb[128],gbsz;\r\nint na[128],nb[128];\r\n\r\nbool check() {\r\n    int i,j,sz;\r\n    sz=0;\r\n    i=1;\r\n    j=1;\r\n    while(i<=asz && j<=gasz) {\r\n        if(a[i]<ga[j]) na[++sz]=a[i++];\r\n        else na[++sz]=ga[j++];\r\n    }\r\n    while(i<=asz) na[++sz]=a[i++];\r\n    while(j<=gasz) na[++sz]=ga[j++];\r\n    sz=0;\r\n    i=1;\r\n    j=1;\r\n    while(i<=bsz && j<=gbsz) {\r\n        if(b[i]<gb[j]) nb[++sz]=b[i++];\r\n        else nb[++sz]=gb[j++];\r\n    }\r\n    while(i<=bsz) nb[++sz]=b[i++];\r\n    while(j<=gbsz) nb[++sz]=gb[j++];\r\n    for(i=1;i<=n;i++) if(na[i]>nb[i]) return false;\r\n    return true;\r\n}\r\n\r\nvoid gen(int pos, int givena, int givenb) {\r\n    if(pos>csz) {\r\n        if(check()) ++ans;\r\n        return;\r\n    }\r\n    if(givena<givea) {\r\n        ga[++gasz]=c[pos];\r\n        gen(pos+1,givena+1,givenb);\r\n        --gasz;\r\n    }\r\n    if(givenb<giveb) {\r\n        gb[++gbsz]=c[pos];\r\n        gen(pos+1,givena,givenb+1);\r\n        --gbsz;\r\n    }\r\n}\r\n\r\nint main() {\r\n    int i;\r\n\r\n    scanf("%d", &n);\r\n    scanf("%d", &asz);\r\n    for(i=1;i<=asz;i++) scanf("%d", &a[i]),here[a[i]]=true;\r\n    sort(a+1,a+1+asz);\r\n    scanf("%d", &bsz);\r\n    for(i=1;i<=bsz;i++) scanf("%d", &b[i]),here[b[i]]=true;\r\n    sort(b+1,b+1+bsz);\r\n    for(i=1;i<=2*n;i++) if(!here[i]) c[++csz]=i;\r\n    givea=n-asz;\r\n    giveb=n-bsz;\r\n    gen(1,0,0);\r\n    printf("%lld\\n", ans);\r\n\r\n    return 0;\r\n}\r\n/**\r\n4\r\n2 3 2\r\n3 4 8 7\r\n**/\r\n'
p3
tp4
stp5
.