(I2
I139
I6
(dp0
Vtable.%l
p1
(Vtable.cpp
p2
S'#include <iostream>\r\n#include <algorithm>\r\nusing namespace std;\r\nbool prt[71];\r\nint pos_pos_row[37][37];\r\nint pos_pos_col[37][37];\r\nint frow[37];\r\nint frwl;\r\nint n;\r\nint la = 0, lb = 0, lc = 0;\r\nint a[37], b[37], c[37];\r\nint ppl[37];//possible positions length\r\nint much[2]; //how much numbers are there on each row\r\nvoid putinrow(int which, int place)\r\n{\r\n    much[0] ++;\r\n    frwl ++;\r\n    for(int i = place+1; i < frwl; i ++)\r\n    {\r\n        frow[i+1] = frow[i];\r\n    }\r\n    frow[place+1] = which;\r\n}\r\nvoid removefromrow(int place)\r\n{\r\n    much[0] --;\r\n    frwl --;\r\n    for(int i = place+1; i < frwl; i ++)\r\n    {\r\n        frow[i] = frow[i+1];\r\n    }\r\n}\r\nint start(int pos)\r\n{\r\n    if(pos >= lc) return 1;\r\n    int ways = 1;\r\n    for(int i = 0; i < ppl[pos]; i ++)\r\n    {\r\n        int row = pos_pos_row[pos][i];\r\n        int col = pos_pos_col[pos][i];\r\n        //cout << r << much[r] << endl;\r\n        if((much[row]<n && row == 0) || (much[row] < n && row == 1 && col < much[0] && frow[col] < c[pos]))\r\n        {\r\n            int nm = 0;\r\n            putinrow(c[pos], col);\r\n            ways += start(pos+1);\r\n            removefromrow(col);\r\n        }\r\n    }\r\n    return ways;\r\n}\r\nint main()\r\n{\r\n    cin >> n;\r\n    cin >> la;\r\n    for(int i = 0; i < la; i ++)\r\n    {\r\n        cin >> a[i];\r\n        prt[a[i]] = true;\r\n        putinrow(a[i],i);\r\n    }\r\n    cin >> lb;\r\n    for(int i = 0; i < lb; i ++)\r\n    {\r\n        cin >> b[i];\r\n        prt[b[i]] = true;\r\n    }\r\n    for(int i = 1; i <= 2*n; i ++)\r\n    {\r\n        if(!prt[i])\r\n        {\r\n            c[lc] = i;\r\n            lc ++;\r\n        }\r\n    }\r\n    sort(a,a+la);\r\n    sort(b,b+lb);\r\n    sort(c,c+lc);\r\n    much[1] = lb;\r\n    for(int i = 0; i < lc; i ++)\r\n    {\r\n        a[la+1] = 2*n;\r\n        b[lb+1] = 2*n;\r\n        if(c[i] < a[0])\r\n        {\r\n            pos_pos_row[i][ppl[i]] = 0;\r\n            pos_pos_col[i][ppl[i]] = -1;\r\n            ppl[i] ++;\r\n        }\r\n        if(c[i] < b[0])\r\n        {\r\n            pos_pos_row[i][ppl[i]] = 1;\r\n            pos_pos_col[i][ppl[i]] = -1;\r\n            ppl[i] ++;\r\n        }\r\n        for(int aa = 0; aa < la; aa ++)\r\n        {\r\n            if(c[i] > a[aa] && c[i] < a[aa+1])\r\n            {\r\n                pos_pos_row[i][ppl[i]] = 0;\r\n                pos_pos_col[i][ppl[i]] = aa;\r\n                ppl[i] ++;\r\n            }\r\n        }\r\n        for(int aa = 0; aa < lb; aa ++)\r\n        {\r\n            if(c[i] > b[aa] && c[i] < b[aa+1])\r\n            {\r\n                pos_pos_row[i][ppl[i]] = 1;\r\n                pos_pos_col[i][ppl[i]] = aa;\r\n                ppl[i] ++;\r\n            }\r\n        }\r\n    }\r\n    cout << start(0) << endl;\r\n}'
p3
tp4
stp5
.