(I2
I106
I6
(dp0
Vtable.%l
p1
(Vb3.cpp
p2
S'#include <iostream>\r\n#include <unordered_set>\r\n#include <cstring>\r\n\r\nint r1[64], r2[64];\r\n\r\nint n;\r\n\r\nstd::unordered_set<int> a, b, c;\r\n\r\n//int br = 0;\r\n\r\n#define ll long long\r\n\r\nll memo[64][64][128];\r\n\r\nll rec(int a1, int a2, int next) {\r\n    //std::cout << "rec " << a1 << " " << a2 << " " << next << std::endl;\r\n    if(next == 2 * n) { /*\r\n        std::cout << "found\\n";\r\n        for(int i = 0; i < n; i++) {\r\n            std::cout << r1[i] << " ";\r\n        }\r\n        std::cout << std::endl;\r\n\r\n        for(int i = 0; i < n; i++)\r\n            std::cout << r2[i] << " ";\r\n        std::cout << std::endl;*/\r\n        //br++;\r\n        return 1;\r\n    }\r\n\r\n    if(memo[a1][a2][next] > -1)\r\n        return memo[a1][a2][next];\r\n\r\n    if(a1 > a2) {\r\n        ll s = 0;\r\n        if(a1 < n && (a.find(next) != a.end() || c.find(next) != c.end())) {\r\n            r1[a1] = next;\r\n            s += rec(a1 + 1, a2, next + 1);\r\n        }\r\n        if(b.find(next) != b.end() || c.find(next) != c.end()) {\r\n            r2[a2] = next;\r\n            s += rec(a1, a2 + 1, next + 1);\r\n        }\r\n        return (memo[a1][a2][next] = s);\r\n    }\r\n\r\n    else if(a1 == a2) {\r\n        if(a.find(next) != a.end() || c.find(next) != c.end()) {\r\n            r1[a1] = next;\r\n            return (memo[a1][a2][next] = rec(a1 + 1, a2, next + 1));\r\n        }\r\n    }\r\n    return (memo[a1][a2][next] = 0);\r\n}\r\n\r\nint main() {\r\n\r\n    std::cin >> n;\r\n    for(int i = 0; i < 2 * n; i++) {\r\n        c.insert(i);\r\n    }\r\n    int m, k;\r\n\r\n    std::cin >> m;\r\n    for(int i = 0; i < m;i++) {\r\n        int x;\r\n        std::cin >> x;\r\n\r\n        --x;\r\n        a.insert(x);\r\n        c.erase(x);\r\n    }\r\n\r\n    std::cin >> k;\r\n    for(int i = 0; i < k; i++) {\r\n        int x;\r\n        std::cin >> x;\r\n\r\n        --x;\r\n\r\n        b.insert(x);\r\n        c.erase(x);\r\n    }\r\n\r\n    std::memset(memo, -1, sizeof(memo));\r\n    ll r = rec(0, 0, 0);\r\n\r\n\r\n    std::cout << r << std::endl;\r\n    return 0;\r\n}\r\n'
p3
tp4
stp5
.