#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
#define N 100010
class Segtree{
  public:
  ll dat[2*N];
  void init(){
    for(int i=0;i<2*N;i++)dat[i]=0;
  }
  void upd(ll i,ll val){
    i+=N; dat[i]=val;
    for(;i;i>>=1)dat[i/2]=max(dat[i],dat[i^1]);
  }
  ll qry(ll l,ll r){
    l+=N,r+=N;
    ll res=0;
    for(ll a=l,b=r;a<b;a>>=1,b>>=1){
      if(a&1)res=max(res,dat[a++]);
      if(b&1)res=max(res,dat[--b]);
    }
    return res;
  }
};Segtree seg;
ll n,a[N],b[N];
vector<P> v;
void zaats(){
  for(int i=0;i<n;i++)v.push_back(make_pair(a[i],i));
  sort(v.begin(),v.end());
  for(int i=0;i<n;i++)b[v[i].second]=i;
}
int main(){
  cin>>n;
  for(int i=0;i<n;i++)cin>>a[i];
  zaats();
  seg.init();
  for(int i=0;i<n;i++){
    seg.upd(b[i],seg.qry(0,b[i])+a[i]);
  }
  ll sum=0;
  for(int i=0;i<n;i++)sum+=a[i];
  cout<<sum-seg.qry(0,n)<<endl;
    return 0;
}

