#include<stdio.h>
//小さい順にソート
long long int c[200010];
void merge(long long i,long long j,long long int *s){
  if(i!=j){
    merge(i,(i+j)/2,s);
    merge((i+j)/2+1,j,s);
    long long a=i,b=(i+j)/2+1;
    long long d;
    for(d=i;d<=j;d++){
      if((i+j)/2<a){
        c[d]=s[b];
        b++;
      }
      else if(j<b){
        c[d]=s[a];
        a++;
      }
      else if(s[a]<s[b]){
        c[d]=s[a];
        a++;
      }
      else{
        c[d]=s[b];
        b++;
      }
    }
    for(d=i;d<=j;d++)
      s[d]=c[d];
  }
}

int main(){
  long long n;
  scanf("%lld",&n);
  long long i,j,a[n+2],l[n+2],r[n+2],count=0;
  for(i=1;i<=n;i++){
    scanf("%lld",&a[i]);
    l[i]=a[i]+i;
    r[i]=i-a[i];
  }
  merge(1,n,l);
  merge(1,n,r);
  i=1;
  j=1;
  while(i<=n && j<=n){
    if(l[i]>r[j])
      j++;
    else if(l[i]<r[j])
      i++;
    else{
      int lnum=1,rnum=1;
      i++;
      j++;
      while(l[i]==l[i-1] && i<=n){
        lnum++;
        i++;
      }
      while(r[j]==r[j-1] && j<=n){
        rnum++;
        j++;
      }
      count+=lnum*rnum;
    }
  }
  printf("%lld\n",count);
  return 0;
}
