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

typedef long long ll;
typedef pair<ll,ll> P;
typedef pair<ll,P> P1;

#define fr first
#define sc second
#define chmax(a,b) a=max(a,b)
#define chmin(a,b) a=min(a,b)
#define mp1(a,b,c) P1(a,P(b,c))

template<int sz=1<<17,class T=ll>
struct BIT{
	T s[sz+2];
	void init(){
		for(int i=1;i<=sz;i++){
			s[i]=0;
		}
	}
	void add(int k,T x=1){
		while(k<=sz){
			s[k]+=x;
			k+=k&-k;
		}
	}
	T sum(int k){
		T ret=0;
		while(k>0){
			ret+=s[k];
			k-=k&-k;
		}
		return ret;
	}
};

int main(){
	static ll n;
	static ll p[300010];
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",&p[i]);
	}
	bool ok=true;
	for(int i=1;i<=n;i++){
		ok&=(i&1)==(p[i]&1);
	}
	if(!ok){
		puts("No");
		return 0;
	}
	static BIT<1<<19,ll> bit[2];
	bit[0].init();
	bit[1].init();
	ll x=0,y=0;
	for(int i=1;i<=n;i++){
		x+=bit[i&1].sum(n+1)-bit[i&1].sum(p[i]);
		y+=bit[1-(i&1)].sum(n+1)-bit[1-(i&1)].sum(p[i]);
		bit[(i&1)].add(p[i]);
	}
	if(y==2*x)puts("Yes");
	else puts("No");
}

