#pragma GCC optimize ("O3") #include #include #include #include using namespace std; typedef long long lint; typedef vectorvi; typedef pairpii; #define rep(i,n)for(int i=0;i<(int)(n);++i) bool kado(lint a,lint b,lint c){ return (a-b)*(c-b)>0; } const int N=300000; pii cand[N]; int main(){ int n; cin>>n; vi a(n); rep(i,n)cin>>a[i],a[i]--; lint ans=0; //近い要素 rep(i,n){ for(int j=i+1;j<=min(n-1,i+2);j++){ swap(a[i],a[j]); int ok=1; for(int k=max(0,i-2);k<=min(n-3,j);k++){ ok&=kado(a[k],a[k+1],a[k+2]); } if(ok)ans++; swap(a[i],a[j]); } } //遠い要素 //cand[i] を計算する rep(i,n){ int ma=n-1,mi=0; int x=a[i]; if(i=2){ if(a[i-1]c; if(i>0&&i