1 #include<stdio.h>
2 #include<string.h>
3
4 int a[10010],w[10010],p[10010],o[10010];
5
6 void Barrel_Sort(int *a,int n,int mx)
7 {
8 int i;
9 memset(w,0,sizeof(w));
10 for(i=1;i<=n;i++)
11 w[a[i]]++;
12 for(i=1;i<=mx;i++)
13 w[i]=w[i]+w[i-1];
14 for(i=1;i<=n;i++){
15 p[i]=w[a[i]];
16 w[a[i]]--;
17 }
18 for(i=1;i<=n;i++)
19 o[p[i]]=i;
20 }
21
22 int main()
23 {
24 int n,i,mx;
25 while(scanf("%d",&n)!=EOF)
26 {
27 memset(p,0,sizeof(p));
28 mx=0;
29 for(i=1;i<=n;i++)
30 {
31 scanf("%d",&a[i]);
32 if(a[i]>mx)
33 mx=a[i];
34 }
35 Barrel_Sort(a,n,mx);
36 printf("%d\n",n-1);
37 for(i=1;i<n;i++)
38 {
39 printf("%d %d\n",i,p[i]);
40 }
41 }
42 return 0;
43 }
44