(I3
I101
I8
(dp0
Vswap.%l
p1
(Vswap2.cpp
p2
S'#include <bits/stdc++.h>\r\n#define endl \'\\n\'\r\nusing namespace std;\r\n\r\nconst int maxN = 105, maxSteps = 1e6 + 5;\r\n\r\nint n, a[maxN], steps[maxSteps], indOf[maxN], ind, steps2[maxSteps], ind2;\r\n\r\nvoid printA()\r\n{\r\n    for(int i = 0; i < n; i++)\r\n    {\r\n        cout<<a[i]<<" ";\r\n    }\r\n    cout<<endl;\r\n}\r\nvoid recursion(int k)\r\n{\r\n    if(a[k] != k + 2)\r\n    {\r\n        steps2[ind2++] = k;\r\n        swap(a[k], a[k + 1]);\r\n       // printA();\r\n        return;\r\n    }\r\n    \r\n    recursion(k - 1);\r\n    steps2[ind2++] = k;\r\n    swap(a[k], a[k + 1]);\r\n    //printA();\r\n}\r\n\r\nint main()\r\n{\r\n    ios_base::sync_with_stdio(false);\r\n    cin.tie(NULL);\r\n    \r\n    cin>>n;\r\n    for(int i = 0; i < n; i++)\r\n    {\r\n        cin>>a[i];\r\n        indOf[a[i]] = i;\r\n    }\r\n    \r\n    for(int i = 0; i < n; i++)\r\n    {\r\n        if(a[i] != i + 1)\r\n        {\r\n            for(int j = indOf[i + 1]; j >= i + 1; j--)\r\n            {\r\n                if(a[j - 1] != j + 1 || i + 2 == a[i])\r\n                {\r\n                    steps[ind++] = j;\r\n                    swap(a[j], a[j - 1]);\r\n                }\r\n                else\r\n                {\r\n                    ind2 = 0;\r\n                    recursion(j - 1);\r\n                    for(int l = ind2 - 1; l >= 0; l--)\r\n                    {\r\n                        steps[ind++] = steps2[l];\r\n                    }\r\n                }\r\n                \r\n                //printA();\r\n            }\r\n        }\r\n    }\r\n    \r\n    cout<<ind<<endl;\r\n    for(int i = 0; i < ind; i++)\r\n    {\r\n        cout<<steps[i]<<" "<<steps[i] + 1<<endl;\r\n    }\r\n    \r\n    return 0;\r\n}'
p3
tp4
stp5
.