#include<bits/stdc++.h>
using namespace std;
int a[200010],b[200010];
queue<int>pos[200010];
map<int,int>id;
int tot,n;
int T[200010<<2];
int q(int rt,int l,int r,int pos){
	if(l==r)return T[rt];
	int mid=l+r>>1;
	if(pos<=mid)return T[rt]+q(rt<<1,l,mid,pos);
	else return T[rt]+q(rt<<1|1,mid+1,r,pos);
}
void ad(int rt,int l,int r,int L,int R){
	if(l==L&&r==R){
		T[rt]++;return;
	}
	int mid=l+r>>1;
	if(R<=mid)ad(rt<<1,l,mid,L,R);
	else if(L>mid)ad(rt<<1|1,mid+1,r,L,R);
	else ad(rt<<1,l,mid,L,mid),ad(rt<<1|1,mid+1,r,mid+1,R);
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		a[i]+=i;
		int t=id[a[i]];
		if(!t)id[a[i]]=t=++tot;
		pos[t].push(i);
	}
	int flag=1;
	for(int i=1;i<=n;i++){
		scanf("%d",&b[i]);
		b[i]+=i;
		int t=id[b[i]];
		if(t&&!pos[t].empty()){
			b[i]=pos[t].front();
			pos[t].pop();
		}
		else flag=0;
	}
	if(!flag)printf("-1");
	else{
		long long ans=0;
		for(int i=1;i<=n;i++)ans+=q(1,1,n,b[i]),ad(1,1,n,1,b[i]);
		printf("%lld",ans);
	}
}
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

#include <bits/stdc++.h>
using namespace std;

template<typename T>
struct BIT{
private:
  vector<T> A;
  const int n;
  
public:
  BIT(int _n) : A(_n+1,0), n(_n){}
  
  //i番目までの累積和
  T sum(int i){
    T s=0;
    while(i>0){
      s+=A[i];
      i-=i&-i;
    }
    return s;
  }
  
  //[i,j]の要素の総和
  T sum(int i,int j){
    return sum(j)-sum(i-1);
  }
  
  //i番目にxを代入
  void add(int i,T x){
    while(i<=n){
      A[i]+=x;
      i+=i&-i;
    }
  } 
};

int main(){
  int n;
  cin>>n;
  vector<ll> A(n),B(n);
  rep(i,n) cin>>A[i];
  rep(i,n) cin>>B[i];
  
  vector<pair<ll,int>> C(n),D(n);
  rep(i,n){
    C[i]={A[i]+i,i};
    D[i]={B[i]+i,i};
  }
  sort(ALL(C));
  sort(ALL(D));
  
  vector<int> E(n);
  rep(i,n){
    if(C[i].first!=D[i].first){
      cout<<-1<<endl;
      return 0;
    }
    E[C[i].second]=D[i].second+1;
  }
  
  BIT<int> bit(n);  
  ll ans=0;
  for(int j=0;j<n;j++){
    ans+=j-bit.sum(E[j]);
    bit.add(E[j],1);
  }
  cout<<ans<<endl; 

  return 0;
}