#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ll long long int
#define fi first
#define se second
#define pi acos(-1.0)
#define pb push_back
#define B begin
#define E end
#define mod 1000000007
#define YY cout<<"YES"<<endl
#define NN cout<<"NO"<<endl
#define Yy cout<<"Yes"<<endl
#define Nn cout<<"No"<<endl
#define yy cout<<"yes"<<endl
#define nn cout<<"no"<<endl
#define MX 4*10e18
#define NODES 100000
#define FAST() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
using namespace __gnu_pbds;
template<class T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update> ;
priority_queue<ll,vector<ll>,greater<ll> > san;
bool sortBysec(pair<ll,ll>a,pair<ll,ll>b)
{
return a.second>b.second;
}
int main()
{
FAST();
ll t=1,tt=0,i,j,k,n,m,x,y,z,a,b,c,d,ans,p,q,f;
//cin>>t;
while(t--)
{
tt++;
ordered_set<ll>os;
cin>>n;
vector<ll>v;
for(i=0;i<n;i++)
{
cin>>x;
v.pb(x);
}
ll ans=0;
for(i=0;i<n-1;i++)
{
p=os.order_of_key(v[i]);
x=v[i]-1;
//cout<<v[i]<<" "<<p<<endl;
ans+=max(0ll,(x-p));
os.insert(v[i]);
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2RlZmluZSBsbCAgbG9uZyBsb25nIGludAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGkgYWNvcygtMS4wKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEIgYmVnaW4KI2RlZmluZSBFIGVuZAojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgWVkgY291dDw8IllFUyI8PGVuZGwKI2RlZmluZSBOTiBjb3V0PDwiTk8iPDxlbmRsCiNkZWZpbmUgWXkgY291dDw8IlllcyI8PGVuZGwKI2RlZmluZSBObiBjb3V0PDwiTm8iPDxlbmRsCiNkZWZpbmUgeXkgY291dDw8InllcyI8PGVuZGwKI2RlZmluZSBubiBjb3V0PDwibm8iPDxlbmRsCiNkZWZpbmUgTVggNCoxMGUxOAojZGVmaW5lIE5PREVTIDEwMDAwMAojZGVmaW5lIEZBU1QoKSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKCnRlbXBsYXRlPGNsYXNzIFQ+CnVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZTxULCBudWxsX3R5cGUsIGxlc3M8VD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+IDsKcHJpb3JpdHlfcXVldWU8bGwsdmVjdG9yPGxsPixncmVhdGVyPGxsPiA+IHNhbjsKCmJvb2wgc29ydEJ5c2VjKHBhaXI8bGwsbGw+YSxwYWlyPGxsLGxsPmIpCnsKICAgIHJldHVybiBhLnNlY29uZD5iLnNlY29uZDsKfQoKCgppbnQgbWFpbigpCnsKICAgIEZBU1QoKTsKICAgIGxsIHQ9MSx0dD0wLGksaixrLG4sbSx4LHkseixhLGIsYyxkLGFucyxwLHEsZjsKCiAgICAvL2Npbj4+dDsKCiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgdHQrKzsKICAgICAgICBvcmRlcmVkX3NldDxsbD5vczsKICAgICAgICBjaW4+Pm47CiAgICAgICAgdmVjdG9yPGxsPnY7CiAgICAgICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj54OwogICAgICAgICAgICB2LnBiKHgpOwogICAgICAgIH0KICAgICAgICBsbCBhbnM9MDsKICAgICAgICBmb3IoaT0wO2k8bi0xO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHA9b3Mub3JkZXJfb2Zfa2V5KHZbaV0pOwogICAgICAgICAgICB4PXZbaV0tMTsKICAgICAgICAgICAgLy9jb3V0PDx2W2ldPDwiICI8PHA8PGVuZGw7CiAgICAgICAgICAgIGFucys9bWF4KDBsbCwoeC1wKSk7CiAgICAgICAgICAgIG9zLmluc2VydCh2W2ldKTsKICAgICAgICB9CiAgICAgICAgY291dDw8YW5zPDxlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==