AC:30
TLE:3
WA:9
#include <bits/stdc++.h>
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
using namespace std;
int main(){
long long n;
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
vector<long long>a(n);
for (int i=0;i<n;i++){
cin>>a[i];
}
vector<pair<long long,long long> >ans;
for(int j=1;j<n;j++){
if(a[j]<a[j-1]){
while(a[j]<a[j-1]){
if(a[j]>0||a[j-1]>0){
ans.push_back({j,j+1});
a[j] +=a[j-1];
}
else{
ans.push_back({j+1,j});
a[j-1]+=a[j];
}
}
}
}
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++){
cout<<ans[i].first<<" "<<ans[i].second<<endl;
}
return 0;
}