(I2
I125
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include <iostream>\r\n\r\nusing namespace std;\r\n\r\nlong long n, table[ 4 ][ 64 ], as, bs, k, ans;\r\nbool A[ 128 ], B[ 128 ], used[ 128 ];\r\n\r\nvoid bcktr( int i, int j )\r\n{\r\n    /*\r\n    for(int ii = 0; ii < 2; ii ++ )\r\n    {\r\n        for(int jj = 0; jj < n; jj++ )\r\n        {\r\n            cout << table[ ii ][ jj ] << " ";\r\n        }\r\n        cout << endl;\r\n    }\r\n    cout << endl;\r\n    */\r\n    if( i == 1 && j == n )\r\n    {\r\n        ans++;\r\n        return;\r\n    }\r\n    \r\n    for( int z = 1; z <= 2*n; z ++ )\r\n    {\r\n        if( i == 0 )\r\n        {\r\n            if( A[ z ] == true || ( A[ z ] == false && B[ z ] == false) )\r\n            {\r\n                if( ( (z > table[ i ][ j - 1 ] && j != 0 ) || ( j == 0 && z == 1 ) ) && used[ z ] == false )\r\n                {\r\n                    used[ z ] = true;\r\n                    table[ i ][ j ] = z;\r\n                    if( j + 1  == n )\r\n                    {\r\n                        bcktr( 1, 0 );\r\n                    }\r\n                    else\r\n                    {\r\n                        bcktr( 0, j + 1 );\r\n                    }\r\n                    used[ z ] = false;\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if( B[ z ] == true || (B[ z ] == false && A[ z ] == false ) )\r\n            {\r\n                if( (j != 0 && used[ z ] == false && z > table[ 0 ][ j ] && z > table[ 1 ][ j - 1 ] ) || (j == 0 && used[ z ] == false && z > table[ 0 ][ j ] ) )\r\n                {\r\n                    used[ z ] = true;\r\n                    table[ i ][ j ] = z;\r\n                    bcktr( i, j + 1 );\r\n                    used[ z ] = false;\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nint main()\r\n{\r\n    ios::sync_with_stdio(false);\r\n    cin.tie(NULL);\r\n    \r\n    cin >> n;\r\n    cin >> as;\r\n    for(int i = 0; i < as; i ++ )\r\n    {\r\n        cin >> k;\r\n        A[ k ] = true;\r\n    }\r\n    cin >> bs;\r\n    for(int i = 0; i < bs; i ++ )\r\n    {\r\n        cin >> k;\r\n        B[ k ] = true;\r\n    }\r\n    \r\n    bcktr( 0, 0 );\r\n    cout << ans << endl;\r\n    return 0;\r\n}'
p3
tp4
stp5
.