#include #include #include #include #include #include #include #include #define INF_LL 9000000000000000000 #define INF 2000000000 #define REP(i, n) for(int i = 0;i < (n);i++) #define FOR(i, a, b) for(int i = (a);i < (b);i++) using namespace std; typedef long long ll; typedef pair PII; class Union_find{ private: vector par; vector rank; int n; public: Union_find(int a){ n = a; for(int i = 0;i < n;i++){ par.push_back(i); rank.push_back(0); } } int find(int x){ if(par[x] == x){ return x; }else{ return par[x] = find(par[x]); } } void unite(int x, int y){ x = find(x); y = find(y); if(x == y) return; if(rank[x] < rank[y]){ par[x] = y; }else{ par[y] = x; if(rank[x] == rank[y]) rank[x]++; } } bool same(int x, int y){ return find(x) == find(y); } }; int main(void){ int n; int a[100]; int dummy; vector< PII > s; int cnt = 0; cin >> n; REP(i, n){ cin >> a[i]; } for(int i = 0;i < n-1;i++){ for(int j = i;j < n;j++){ if(a[i] > a[j]){ s.push_back(PII(i, j)); swap(a[i], a[j]); cnt++; } } } cout << cnt << endl; REP(i, s.size()){ cout << s[i].first << " " << s[i].second << endl; } cout << flush; cin >> dummy; return 0; }