#include <stdio.h>
int sum=1;
int sum1=1;
int start=1;
int a[31]={0};
void saveArr(int n) {
if(n==0) {
return;
}
a[start]=start;
start++;
saveArr(n-1);
}
void delArr(int r) {
if(r==0) {
return;
}
a[r]=1;
delArr(r-1);
}
int calArr(int n,int r1) {
if(n==0) {
return sum/sum1;
}
sum = sum * a[n];
sum1 = sum1 * r1;
if(r1>1) {
calArr(n-1,r1-1);
}
else if(r1==1) {
calArr(n-1,r1);
}
}
int main() {
int n,r,r1;
scanf("%d %d", &n, &r);
r1=n-r;
if(n==r) {
printf("1");
return;
}
else if(r==1||r1==1) {
printf("%d", n);
return;
}
else {
if(r<r1) {
r=r1;
r1=n-r;
}
}
saveArr(n);
delArr(r);
printf("%d", calArr(n,r1));
}
*/
/*
int a(int n,int r){if(r==0||n==r)return 1;else return a(n-1,r-1)+a(n-1,r);}int main(){int n,r;scanf("%d%d",&n,&r);printf("%d",a(n,r));}
*/
/*
int main(){printf("Hello");}
*/
/*
#include<stdio.h>
#define SIZE 5
int arr[SIZE] = {0};
int top=0;
int i;
void push(int k) {
if(top == SIZE) {
printf("Stack is Full\n");
return;
}
arr[top++] = k;
}
void pop() {
if(top == 0) {
printf("Stack is Empty\n");
return;
}
printf("%d\n", arr[--top]);
arr[top] = 0;
}
void view() {
for(i=0; i<5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return;
}
int main() {
int n,k;
for(;;) {
printf("1:push, 2:pop, 3:view >>>");
scanf("%d", &n);
switch(n) {
case 1:
printf("input data: ");
scanf("%d", &k);
push(k);
break;
case 2:
pop();
break;
case 3:
view();
break;
default:
printf("error\n");
break;
}
}
}
*/
#include <stdio.h>
int l;
int top=0;
int sum=0;
int a[80001]={0};
int search(int i,int distance) {
sum=0;
for(l=1; l<distance; l++) {
if(a[i]>a[i+l]) {
sum++;
}
else {
return sum;
}
}
}
int main() {
int n,i,distance,s=0;
scanf("%d", &n);
for(i=1; i<=n; i++) {
scanf("%d", &a[i]);
}
for(i=1; i<n; i++) {
distance=n-i;
s=s+search(i,distance);
}
printf("%d", s);
}
//
// 이거진짜 왜틀렸는지 모르겠어요 Testcase 1 에서 정답이고 5 코드블럭스에서 5로
// 잘 출력되는데 코드업에서는 4로 출력된다고하네요
// 살려주세요
//