(I2
I103
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include <bits/stdc++.h>\r\nusing namespace std;\r\n\r\nint n, m, k;\r\nvector<int> a, b, c;\r\n\r\nvoid read()\r\n{\r\n    cin>>n;\r\n    vector<bool> isC(n*2+1, true);\r\n\r\n    cin>>m;\r\n    a.resize(m);\r\n    for(int i=0;i<m;i++)\r\n    {\r\n        cin>>a[i];\r\n        isC[a[i]]=false;\r\n    }\r\n\r\n    cin>>k;\r\n    b.resize(k);\r\n    for(int i=0;i<k;i++)\r\n    {\r\n        cin>>b[i];\r\n        isC[b[i]]=false;\r\n    }\r\n\r\n    for(int i=1;i<=2*n;i++)\r\n    {\r\n        if(isC[i])c.push_back(i);\r\n    }\r\n}\r\n\r\nvector<int> v1, v2, v3;\r\n\r\nvoid go(int aCount, int bCount, int aLast, int bLast)\r\n{\r\n    static vector<bool> usedA(a.size(), false);\r\n    static vector<bool> usedB(b.size(), false);\r\n    static vector<bool> usedC(c.size(), false);\r\n\r\n    if(aCount==bCount&&aCount==n)\r\n    {\r\n        printf("%d %d %d %d\\n", aCount, bCount, aLast, bLast);\r\n    }\r\n\r\n    if(aCount<bCount)\r\n    {\r\n        for(int i=0;i<c.size();i++)if(usedC[i]==false&&c[i]>aLast&&c[i]<bLast)\r\n        {\r\n            usedC[i]=true;\r\n            go(aCount+1, bCount, c[i], bLast);\r\n            usedC[i]=false;\r\n        }\r\n        for(int i=0;i<a.size();i++)if(usedA[i]==false&&a[i]>aLast&&a[i]<bLast)\r\n        {\r\n            usedA[i]=true;\r\n            go(aCount+1, bCount, a[i], bLast);\r\n            usedA[i]=false;\r\n        }\r\n    }\r\n    else if(aCount>bCount)\r\n    {\r\n        for(int i=0;i<c.size();i++)if(usedC[i]==false && c[i]>bLast && c[i]>aLast)\r\n        {\r\n            usedC[i]=true;\r\n            go(aCount, bCount+1, aLast, c[i]);\r\n            usedC[i]=false;\r\n        }\r\n        for(int i=0;i<b.size();i++)if(usedB[i]==false && b[i]>bLast && b[i]>aLast)\r\n        {\r\n            usedB[i]=true;\r\n            go(aCount, bCount+1, aLast, b[i]);\r\n            usedB[i]=false;\r\n        }\r\n    }\r\n\r\n    else\r\n    {\r\n        for(int i=0;i<c.size();i++)if(usedC[i]==false && c[i]>bLast)\r\n        {\r\n            usedC[i]=true;\r\n            go(aCount, bCount+1, aLast, c[i]);\r\n            usedC[i]=false;\r\n        }\r\n        for(int i=0;i<b.size();i++)if(usedB[i]==false && b[i]>bLast)\r\n        {\r\n            usedB[i]=true;\r\n            go(aCount, bCount+1, aLast, b[i]);\r\n            usedB[i]=false;\r\n        }\r\n\r\n        for(int i=0;i<c.size();i++)if(usedC[i]==false&&c[i]>aLast)\r\n        {\r\n            usedC[i]=true;\r\n            go(aCount+1, bCount, c[i], bLast);\r\n            usedC[i]=false;\r\n        }\r\n        for(int i=0;i<a.size();i++)if(usedA[i]==false&&a[i]>aLast)\r\n        {\r\n            usedA[i]=true;\r\n            go(aCount+1, bCount, a[i], bLast);\r\n            usedA[i]=false;\r\n        }\r\n    }\r\n}\r\n\r\nint main()\r\n{\r\n    ios::sync_with_stdio(false);\r\n    cin.tie(nullptr);\r\n    read();\r\n    go(0, 0, -1, -1);\r\n}\r\n/*\r\n4\r\n2 3 2\r\n3 4 8 7\r\n*/\r\n'
p3
tp4
stp5
.