(I2
I131
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include<iostream>\r\nusing namespace std;\r\nint n,a,b,m[80],up[40],down[40],br;\r\nbool used[80];\r\n\r\nvoid choose(int x,int u,int d)\r\n{\r\n    if(x>2*n) \r\n    {\r\n        bool is=0;\r\n        for(int i=1;i<n;i++)\r\n            if(up[i]<=up[i-1] || down[i]<=down[i-1] || down[i]<=up[i] || up[i]==0 || down[i]==0)\r\n            {\r\n                is=1;\r\n                break;\r\n            }\r\n        if(down[0]<=up[0] || down[0]==0 || up[0]==0) is=1;\r\n        if(is==0) br++;\r\n        return;\r\n    }\r\n    if(m[x]==1 && u==n) return;\r\n    if(m[x]==1 && u<n && used[x]==0)\r\n    {\r\n        up[u]=x;\r\n        used[x]=1;\r\n        choose(x+1,u+1,d);\r\n        used[x]=0;\r\n        up[u]=0;\r\n    }\r\n    if(m[x]==2 && used[x]==0)\r\n    {\r\n        down[d]=x;\r\n        used[x]=1;\r\n        choose(x+1,u,d+1);\r\n        used[x]=0;\r\n        down[d]=0;\r\n    }\r\n    if(m[x]==0 && u<n && used[x]==0)\r\n    {\r\n        up[u]=x;\r\n        used[x]=1;\r\n        choose(x+1,u+1,d);\r\n        used[x]=0;\r\n        up[u]=0;\r\n    }\r\n    if(m[x]==0 && d<n && used[x]==0)\r\n    {\r\n        down[d]=x;\r\n        used[x]=1;\r\n        choose(x+1,u,d+1);\r\n        used[x]=0;\r\n        down[d]=0;\r\n    }\r\n    \r\n}\r\n\r\nint main()\r\n{\r\n    cin>>n;\r\n    cin>>a;\r\n    for(int i=0;i<a;i++)\r\n    {\r\n        int x;\r\n        cin>>x;\r\n        m[x]=1;\r\n    }\r\n    cin>>b;\r\n    for(int i=0;i<b;i++)\r\n    {\r\n        int x;\r\n        cin>>x;\r\n        m[x]=2;\r\n    }\r\n    choose(1,0,0);\r\n    cout<<br<<endl;\r\n    return 0;\r\n}'
p3
tp4
stp5
.