Can you please tell me whats the problem in my code for this question
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int *arr=new int[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
vector<int> vec;
if(arr[0]>arr[1])
vec.push_back(0);
for(int i=1;i<n-1;i++){
if(arr[i]>=arr[i-1]&&arr[i]>=arr[i+1])
vec.push_back(i);
}
if(arr[n-1]>arr[n-2])
vec.push_back(n-1);
int high,save=0;
for(int i=0;i<vec.size()-1;i++){
high=min(arr[vec[i]],arr[vec[i+1]]);
for(int j=vec[i]+1;j<vec[i+1];j++){
save+=high-arr[j];
}
}
cout<<save<<endl;
return 0;
}