Problem: 2052A - Adrenaline Rush
Language: C++17 (GCC 7-32)

Previous submission (verdict: Wrong answer on test 5):
// author: 0saurav0
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define repA(i, a, n) for (int i = a; i <= (n); ++i)
#define repD(i, a, n) for (int i = a; i >= (n); --i)
#define tr(a, x) for (auto &a : x)
#define all(c) c.begin(), c.end()

#define lld long long
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define f first
#define s second
#define sz(a) int((a).size())
#define present(c, x) (c.find(x) != c.end())
#define cpresent(c, x) (find(all(c), x) != c.end())

#define vi vector<lld>
#define si set<lld>
#define endl "\n"
#define pii pair<int, int>
#define minq priority_queue<int, vector<int>, greater<int>>
#define mem(a, val) memset(a, val, sizeof(a))
#define scani(x) scanf("%lld", &x)
#define scani2(x, y) scanf("%lld %lld", &x, &y)
#define scani3(x, y, z) scanf("%lld %lld %lld", &x, &y, &z);
#define print(x) printf("%lld ", x)
#define println(x) printf("%lld\n", x)
#define SpeedForce ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define MOD 1000000009

using namespace std;

int32_t main()
{
    SpeedForce;
    int t = 1; 
    // cin >> t;
    while(t--) {
        int n;
        cin>>n;
        vi v(n);
        vi nums(n+1);
        nums[0]=0;
        for(int i=0 ; i<n ; i++){
            cin>>v[i];
            nums[i+1]=i+1;
        }
        vector<pii> tota;
        int count=0;
        int tcount=0;
        for(int i=n-1; i>=0; i--){
            int num=v[i]+count;
            int check=0;
            for(int j=num-1; j>0&&(j<n); j--){
                tota.push_back(make_pair(nums[j+1],nums[j]));
                tcount++;
                swap(nums[j],nums[j+1]);
                check=1;
            }
            if(check) count++;
        }
        cout<<tcount<<endl;
        if(tcount){
            for(auto it=tota.begin();it!=tota.end(); it++){
                cout<<it->first<<" "<<it->second<<endl;
            }
        }
    }
    return 0;
}



/*
═══════════════════░▒░══════════════════
════════════▒▒▒▓███████████▓▒═══════════
════════▒██████████▓▓▓▓██▓████▓═════════
══════▒███████▓█▓▓▓█▓█▓███▓▓▓███════════
═════▓███▓██▓▓████▓██▓█▓▓▓███▓██▒═══════
═════▓██▓███▓█▓████████▓▓█████▓██═══════
═════▒█████████▓▓▓███████████████▒══════
═════▒██████▓█████▒▒▒▒▒██████████▒══════
═════▒███████▓█▓█▒═════░▒▓█▓▓▒▒██▒══════
═════▒█████████▓█▓░░▒▒░░░░░▒▒▒▒██▒══════
═════▒████████████▒░▒▒▒▒▒▒▒▒▒▒▒▓█▒══════
═════▒██████████▓▓▓▒▒▒▒▒▒▒▒▒▒▒░▓█▒══════
═════▒███████▓███▓▒▒▒▒▒▒▒▒▒▒▒▒░▒▓▒══════
═════▓█▒░░▓██▓█▓▒▒▒▒░░░░░░░░░░░▒█▒══════
═════▓█▒▒▒░▒███▒░░▒░░░▒▒▒▒▒█▓█████══════
═════██░▒██▒▒████▒░▓██████████████══════
═════▒█▒▒▒▓▒░▓█▓███████████▒▒█████══════
══════▒█═░░▒▒▒█▒▒▒▒█▓██████░═████═══════
═▒▓███▓██░░▒▒▒▒▒▒▒▒██████▓▒░░▒██▒═══════
██████████▓█▒▒▒▒▒▒▒▒█▓▒▒▒▒░░░═░█════════
█████████▓▓█▓▒▒▒▒▒▓▒▒▒▒▒▒▒▓▓▒░▒█════════
██████████▒▒▓▓▒▒▒▒▒▒▒▒▒▒░▒▓██▓▒█════════
▓▓█▓████▓▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▓▒▒▒▓▓▓██═══════
██▓▒██▒░░▒▓▒▒▒▓█▓▒▒▒▒▒▒█████▒▒▓███══════
█▓▒█▓░░▒▒▒▒▒▒▒▒▒▓▓▒▒▓▒▒░░░▒▒▒▒█████═════
▓▓██░░▒▒▒▒▒▒▒▒▓▒▒▓▓▓▒▒▒▒▒▓██▓▓██████════
▓██▒░▒▒▒▒▒▒▒▒▒▓▓▓▓▓██▓▒▒▒░▒░▒█████▓██═══
▓▓█▒░▒▒▒▒▒▒▓▒▒▒▓▓██████▓▒▒▒▒█████▓▓██░══
█▓█▒░▒▒▒▒▒▒▒▒▒▓▓▓▓████████▓▒████▓██▓██══
▓██▒░▒░▒░░░▒▒▒▒▒▒▒▓▓████▓▒▒▒███▓▓█▓▓▓█══
▒██░░░░░░░░▒▒▒▒▒▒▒▓▓███▓▓▒▒██▓█▓█▓▒█▓██░
▒█▒═░░░░░▒▒░▒▒▒▒▒▒▒▒▒▒▒▓▒▒██▓▓▒█▒▒█▓▒▒▓█
▒█▓░░░░░░░▒▒░▒▒▒▒░░░░▒▒░░██▒▓▒▓▒▒█▓▒▒▒▒█
▒▒█▒═░░░░░░░░░░░░░░░▒░═▒█▒▒▓▒▓█▓▓▒▒▒▒▒▒▓
█▒█▒═░░░░░░░░░░░░░░▒═░██▒▒▒▓▓▒▒▓▒▒▒▒▒▓▒▓
▓▓▒█░░░░░░░░░░░░░░░═▒█▒▒██▓▒▒▓▒▒▒▒▒▓▓▓▒▓
▓█▒█▒═░░░░░░░░▒░░░═▒█▒▒▓▓▓▓▓▒▒▓▒▒▓▓▓▓▒▓▓
▓█▓▒▒═░░░░░▒░▒░░▒═▒█▒▓▓▓▓▓█▓▒▒█▓▒▓▓▓▒▓▓▒
▓▓█▓▒░░░░░░░▒▒▒▒═░█▓▓▓▓▓▓▓▓▓▓▒▓██▒▒▒▓▓█▓
▓▓▓▓█▒═░░░░▒▒▒▒═░▓▓▓▓▓▒▓███▒▓█▒▒▓█▓▒▒▒▒▒
▓▓▒▓█▓═░░▒▒░▒▒═░██▓▓▓▓▓████▒▓▓██▓▓██▓▓▓▓
▓▒▒▓▒█░░▒▒░▒░═▒█████████▓███▓▓▓▓▓▓▓▓████
▓█▓▓▓█▓═▒░▒░░██████████████▓████████████
▓█▓▓▓▒█░░▒═░██████▓█▓█▓█▓▓▓▒█▒▒▒▒▒██████
 
*/

    

Submission (verdict: Wrong answer on test 7):
// author: 0saurav0
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define repA(i, a, n) for (int i = a; i <= (n); ++i)
#define repD(i, a, n) for (int i = a; i >= (n); --i)
#define tr(a, x) for (auto &a : x)
#define all(c) c.begin(), c.end()

#define lld long long
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define f first
#define s second
#define sz(a) int((a).size())
#define present(c, x) (c.find(x) != c.end())
#define cpresent(c, x) (find(all(c), x) != c.end())

#define vi vector<lld>
#define si set<lld>
#define endl "\n"
#define pii pair<int, int>
#define minq priority_queue<int, vector<int>, greater<int>>
#define mem(a, val) memset(a, val, sizeof(a))
#define scani(x) scanf("%lld", &x)
#define scani2(x, y) scanf("%lld %lld", &x, &y)
#define scani3(x, y, z) scanf("%lld %lld %lld", &x, &y, &z);
#define print(x) printf("%lld ", x)
#define println(x) printf("%lld\n", x)
#define SpeedForce ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define MOD 1000000009

using namespace std;

int32_t main()
{
    SpeedForce;
    int t = 1; 
    // cin >> t;
    while(t--) {
        int n;
        cin>>n;
        vi v(n);
        vi nums(n+1);
        nums[0]=0;
        for(int i=0 ; i<n ; i++){
            cin>>v[i];
            nums[i+1]=i+1;
        }
        vector<pii> tota;
        int count=0;
        int tcount=0;
        for(int i=n-1; i>=0; i--){
            int num=v[i]+count;
            // int check=0;
            for(int j=num-1; j>0&&(j<n); j--){
                tota.pb(mp(nums[j+1],nums[j]));
                tcount++;
                swap(nums[j],nums[j+1]);
                // check=1;
            }
            if(v[i-1]<num) count++;
        }
        cout<<tcount<<endl;
        if(tcount){
            for(auto it=tota.begin();it!=tota.end(); it++){
                cout<<it->first<<" "<<it->second<<endl;
            }
        }
    }
    return 0;
}



/*
═══════════════════░▒░══════════════════
════════════▒▒▒▓███████████▓▒═══════════
════════▒██████████▓▓▓▓██▓████▓═════════
══════▒███████▓█▓▓▓█▓█▓███▓▓▓███════════
═════▓███▓██▓▓████▓██▓█▓▓▓███▓██▒═══════
═════▓██▓███▓█▓████████▓▓█████▓██═══════
═════▒█████████▓▓▓███████████████▒══════
═════▒██████▓█████▒▒▒▒▒██████████▒══════
═════▒███████▓█▓█▒═════░▒▓█▓▓▒▒██▒══════
═════▒█████████▓█▓░░▒▒░░░░░▒▒▒▒██▒══════
═════▒████████████▒░▒▒▒▒▒▒▒▒▒▒▒▓█▒══════
═════▒██████████▓▓▓▒▒▒▒▒▒▒▒▒▒▒░▓█▒══════
═════▒███████▓███▓▒▒▒▒▒▒▒▒▒▒▒▒░▒▓▒══════
═════▓█▒░░▓██▓█▓▒▒▒▒░░░░░░░░░░░▒█▒══════
═════▓█▒▒▒░▒███▒░░▒░░░▒▒▒▒▒█▓█████══════
═════██░▒██▒▒████▒░▓██████████████══════
═════▒█▒▒▒▓▒░▓█▓███████████▒▒█████══════
══════▒█═░░▒▒▒█▒▒▒▒█▓██████░═████═══════
═▒▓███▓██░░▒▒▒▒▒▒▒▒██████▓▒░░▒██▒═══════
██████████▓█▒▒▒▒▒▒▒▒█▓▒▒▒▒░░░═░█════════
█████████▓▓█▓▒▒▒▒▒▓▒▒▒▒▒▒▒▓▓▒░▒█════════
██████████▒▒▓▓▒▒▒▒▒▒▒▒▒▒░▒▓██▓▒█════════
▓▓█▓████▓▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▓▒▒▒▓▓▓██═══════
██▓▒██▒░░▒▓▒▒▒▓█▓▒▒▒▒▒▒█████▒▒▓███══════
█▓▒█▓░░▒▒▒▒▒▒▒▒▒▓▓▒▒▓▒▒░░░▒▒▒▒█████═════
▓▓██░░▒▒▒▒▒▒▒▒▓▒▒▓▓▓▒▒▒▒▒▓██▓▓██████════
▓██▒░▒▒▒▒▒▒▒▒▒▓▓▓▓▓██▓▒▒▒░▒░▒█████▓██═══
▓▓█▒░▒▒▒▒▒▒▓▒▒▒▓▓██████▓▒▒▒▒█████▓▓██░══
█▓█▒░▒▒▒▒▒▒▒▒▒▓▓▓▓████████▓▒████▓██▓██══
▓██▒░▒░▒░░░▒▒▒▒▒▒▒▓▓████▓▒▒▒███▓▓█▓▓▓█══
▒██░░░░░░░░▒▒▒▒▒▒▒▓▓███▓▓▒▒██▓█▓█▓▒█▓██░
▒█▒═░░░░░▒▒░▒▒▒▒▒▒▒▒▒▒▒▓▒▒██▓▓▒█▒▒█▓▒▒▓█
▒█▓░░░░░░░▒▒░▒▒▒▒░░░░▒▒░░██▒▓▒▓▒▒█▓▒▒▒▒█
▒▒█▒═░░░░░░░░░░░░░░░▒░═▒█▒▒▓▒▓█▓▓▒▒▒▒▒▒▓
█▒█▒═░░░░░░░░░░░░░░▒═░██▒▒▒▓▓▒▒▓▒▒▒▒▒▓▒▓
▓▓▒█░░░░░░░░░░░░░░░═▒█▒▒██▓▒▒▓▒▒▒▒▒▓▓▓▒▓
▓█▒█▒═░░░░░░░░▒░░░═▒█▒▒▓▓▓▓▓▒▒▓▒▒▓▓▓▓▒▓▓
▓█▓▒▒═░░░░░▒░▒░░▒═▒█▒▓▓▓▓▓█▓▒▒█▓▒▓▓▓▒▓▓▒
▓▓█▓▒░░░░░░░▒▒▒▒═░█▓▓▓▓▓▓▓▓▓▓▒▓██▒▒▒▓▓█▓
▓▓▓▓█▒═░░░░▒▒▒▒═░▓▓▓▓▓▒▓███▒▓█▒▒▓█▓▒▒▒▒▒
▓▓▒▓█▓═░░▒▒░▒▒═░██▓▓▓▓▓████▒▓▓██▓▓██▓▓▓▓
▓▒▒▓▒█░░▒▒░▒░═▒█████████▓███▓▓▓▓▓▓▓▓████
▓█▓▓▓█▓═▒░▒░░██████████████▓████████████
▓█▓▓▓▒█░░▒═░██████▓█▓█▓█▓▓▓▒█▒▒▒▒▒██████
 
*/