#include <bits/stdc++.h>
const int maxn = 2e5 + 10, mod = 1e9 + 7, inf = 0x3f3f3f3f;
using namespace std;
int n, m, k, t, d[maxn], a[maxn];
void add(int x) {
  while (x <= n) d[x]++, x += x & (-x);
}
int get(int x) {
  int ret = 0;
  while (x) ret += d[x], x -= x & (-x);
  return ret;
}
vector<int> qu[maxn];
int main() {
  int i, j;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    qu[min(a[i], n)].push_back(i);
  }
  long long ret = 0;
  for (i = 1; i <= n; i++) {
    add(min(a[i], n));
    for (j = 0; j < qu[i].size(); j++) {
      ret += get(n) - get(qu[i][j] - 1);
    }
  }
  for (i = 1; i <= n; i++)
    if (a[i] >= i) ret--;
  printf("%lld\n", ret >> 1);
  return 0;
}
