(I2
I119
I6
(dp0
Vtable.%l
p1
(Vtable6.cpp
p2
S'#include <cstdio>\r\n#include <vector>\r\n#include <algorithm>\r\nusing namespace std;\r\n\r\nint n, bra, brb, brc=0, ans=0, curr, min1, max2;\r\nint A[72], B[72], Row1[72], Row2[72], bRow1[72], bRow2[72];\r\nint Save[128][128], nowSave[128], ssize=0;\r\nvector<int> Goo;\r\nbool used[72], fl;\r\n\r\nint main ()\r\n{\r\n    scanf("%d", &n);\r\n    scanf("%d", &bra);\r\n    for(int i=0;i<bra;++i)\r\n    {\r\n        scanf("%d", &A[i]);\r\n        Row1[i]=A[i];\r\n        bRow1[i]=Row1[i];\r\n        used[A[i]]=1;\r\n    }\r\n    scanf("%d", &brb);\r\n    for(int i=0;i<brb;++i)\r\n    {\r\n        scanf("%d", &B[i]);\r\n        Row2[i]=B[i];\r\n        bRow2[i]=Row2[i];\r\n        used[B[i]]=1;\r\n    }\r\n    for(int i=1;i<=2*n;++i)\r\n    {\r\n        if(!used[i])\r\n        {\r\n            Goo.push_back(i);\r\n        }\r\n        used[i]=0;\r\n    }\r\n    do\r\n    {\r\n        min1=1000;\r\n        max2=-1;\r\n        if(Goo[0]>Goo[1])\r\n        {\r\n            break;\r\n        }\r\n        curr=0;\r\n        for(int i=0;i<n;++i)\r\n        {\r\n            Row1[i]=bRow1[i];\r\n            Row2[i]=bRow2[i];\r\n        }\r\n        for(int i=bra;i<n;++i)\r\n        {\r\n            nowSave[i-bra]=Goo[curr];\r\n            Row1[i]=Goo[curr++];\r\n            if(Row1[i]<min1)\r\n            {\r\n                min1=Row1[i];\r\n            }\r\n        }\r\n        sort(nowSave, nowSave+(n-bra));\r\n        fl=false;\r\n        for(int i=0;i<ssize;++i)\r\n        {\r\n            fl=true;\r\n            for(int j=0;j<n-bra;++j)\r\n            {\r\n                if(Save[i][j]!=nowSave[j])\r\n                {\r\n                    fl=false;\r\n                    break;\r\n                }\r\n            }\r\n            if(fl)\r\n            {\r\n                break;\r\n            }\r\n        }\r\n        if(fl)\r\n        {\r\n            continue;\r\n        }\r\n        else\r\n        {\r\n            for(int i=0;i<n-bra;++i)\r\n            {\r\n                Save[ssize][i]=nowSave[i];\r\n            }\r\n            ssize++;\r\n        }\r\n        for(int i=brb;i<n;++i)\r\n        {\r\n            Row2[i]=Goo[curr++];\r\n            if(Row2[i]>max2)\r\n            {\r\n                max2=Row2[i];\r\n            }\r\n        }\r\n        if(min1>=max2)\r\n        {\r\n            continue;\r\n        }\r\n        sort(Row1, Row1+n);\r\n        sort(Row2, Row2+n);\r\n        fl=true;\r\n        for(int i=0;i<n;++i)\r\n        {\r\n            if(Row1[i]>Row2[i])\r\n            {\r\n                fl=false;\r\n                break;\r\n            }\r\n        }\r\n        if(fl)\r\n        {\r\n            ans++;\r\n        }\r\n    }\r\n    while(next_permutation(Goo.begin(), Goo.end()));\r\n    printf("%d\\n", ans);\r\n    return 0;\r\n}\r\n\r\n'
p3
tp4
stp5
.