(I2
I165
I6
(dp0
Vtable.%l
p1
(Vmain.cpp
p2
S'#include <iostream>\r\n#include <vector>\r\n#include <set>\r\n#include <algorithm>\r\nusing namespace std;\r\nvector<int> a;\r\nvector<int> b;\r\nset<int> as;\r\nset<int> bs;\r\nvector<int> g;\r\nvector<int> d;\r\nvector<int> c;\r\nvector<int> niz;\r\nvector<int> gdec;\r\nvector<int> gdecp;\r\nset<vector<int> > res;\r\nint n,m,k,gn,dn, bn,bk,nk;\r\n\r\nvoid proveri()\r\n{\r\n    for(int i=0; i<m; i++)\r\n        {\r\n            g.push_back(a[i]);\r\n        }\r\n        for(int i=0; i<k;i++)\r\n        {\r\n            d.push_back(b[i]);\r\n        }\r\n        for(int i=0; i<2*n-m-k; i++)\r\n        {\r\n            if(gdec[i]==1)\r\n                g.push_back(c[i]);\r\n            else\r\n                d.push_back(c[i]);\r\n                //cout << gdec[i];\r\n        }\r\n       // cout << endl;\r\n        sort(g.begin(), g.end());\r\n        sort(d.begin(), d.end());\r\n        bool ok = true;\r\n        for(int i=0; i<n && ok; i++)\r\n        {\r\n            if(g[i] >= d[i])\r\n                ok = false;\r\n        }\r\n\r\n        if(ok)\r\n           {\r\n//            if(res.count(g))\r\n//                {g.clear();\r\n//                d.clear();\r\n//                    return;}\r\n//              res.insert(g);\r\n//              for(int i=0; i<n; i++)\r\n//                cerr << g[i];\r\n//              cerr << endl;\r\n//              for(int i=0; i<n; i++)\r\n//                cerr << d[i];\r\n//                cerr << endl;\r\n\r\n                bn++;\r\n\r\n           }\r\n           g.clear();\r\n            d.clear();\r\n            return;\r\n\r\n}\r\n\r\n\r\nvoid popuni()\r\n{\r\n    if(gdec == gdecp&& bk >0)\r\n        return;\r\n    bk++;\r\n    next_permutation(gdec.begin(), gdec.end());\r\n     proveri();\r\n     popuni();\r\n\r\n//    for(int j=0; j<2*n-m-k; j++)\r\n//    {\r\n//        int i = c[j];\r\n//        if(gn<n && niz[i] == 0)\r\n//       {\r\n//        gn++;\r\n//        niz[i] = 1;\r\n//        popuni();\r\n//        niz[i] = 0;\r\n//        gn--;\r\n//       }\r\n////        if(dn < n && niz[i] == 0)\r\n////       {\r\n////        dn++;\r\n////        niz[i] = 2;\r\n////        popuni();\r\n////        niz[i] = 0;\r\n////        dn--;\r\n////       }\r\n//    }\r\n}\r\n\r\nint main()\r\n{\r\n\r\n    bk=0;\r\n    cin >> n;\r\n    cin >> m;\r\n    bn = 0;\r\n    a.resize(m);\r\n    niz.resize(2*n+1,0);\r\n\r\n    for(int i=0; i<m; i++)\r\n        {\r\n            cin >> a[i];\r\n            as.insert(a[i]);\r\n            niz[a[i]]=1;\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          //cerr << "stigao";\r\n          bs.insert(b[i]);\r\n\r\n          niz[b[i]] = 2;\r\n       }\r\n\r\n    sort(a.begin(), a.end());\r\n    sort(b.begin(), b.end());\r\n\r\n    for(int i=1; i<2*n; i++)\r\n    {\r\n        if(!bs.count(i)&&!as.count(i))\r\n            c.push_back(i);\r\n    }\r\n\r\n    gdec.resize(2*n-k-m);\r\n    for(int i=0; i<n-m; i++)\r\n    {\r\n        gdec[i] = 1;\r\n    }\r\n    for(int i= n-m; i< 2*n-k-m; i++)\r\n        gdec[i] = 2;\r\n        gdecp = gdec;\r\n\r\n    sort(c.begin(), c.end());\r\n    popuni();\r\n    cout << bn;\r\n    return 0;\r\n}\r\n'
p3
tp4
stp5
.