#include #include #include using namespace std; int n, rez, tip1, tip2, swaps, p; struct leb{ int a, b; }; int niz[500], sortniz[500]; int resenjei[400 * 400 + 1], resenjej[400 * 400 + 1]; int m1[450][450]; int m2[450][450]; bool bol(leb levi, leb desni){ return desni.a > levi.a; } int main(){ freopen("sorting.in", "r", stdin); freopen("sorting.out", "w", stdout); cin >> n; for(int i = 1; i <= n; i++) cin >> niz[i]; cin >> tip1; for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) cin >> m1[i][j]; cin >> tip2; for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) cin >> m2[i][j]; for(int i = 1; i <= n; i++) sortniz[i] = niz[i]; sort(sortniz + 1, sortniz + n + 1); for(int i = 1; i <= n; i++){ if(sortniz[i] != niz[i]){ for(int j = i + 1; j <= n; j++) if(sortniz[i] == niz[j]){ resenjei[++p] = j; resenjej[p] = i; swap(niz[i], niz[j]); } } } cout << p << endl; for(int i = 1; i <= p; i++) cout << resenjei[i] << " " << resenjej[i] << endl; return 0; }