#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fod(i,a,b) for(i=a;i>=b;i--)
using namespace std;
typedef long long ll;
const int maxn=2e5+7;
int i,j,k,n,m,an[maxn];
int a[maxn],l[maxn],r[maxn],x,y,q;
int root[2][maxn],num,c[maxn];
ll yi,er,ans1,ans,p1,p2,sum;
struct node{
int l,r;
ll sum,size;
}t[2][maxn*50];
void insert(int y,int &x,int l,int r,int z,int o){
t[o][x=++num]=t[o][y];
t[o][x].sum+=z;t[o][x].size++;
if(l==r)return;
int mid=(l+r)/2;
if(z<=mid)insert(t[o][y].l,t[o][x].l,l,mid,z,o);
else insert(t[o][y].r,t[o][x].r,mid+1,r,z,o);
}
void findl(int y,int x,int l,int r,int z){
if(l==r){er+=t[0][x].size-t[0][y].size;sum+=t[0][x].sum-t[0][y].sum;return;}
int mid=(l+r)/2;
if(z<=mid){
er+=t[0][t[0][x].r].size-t[0][t[0][y].r].size;sum+=t[0][t[0][x].r].sum-t[0][t[0][y].r].sum;
findl(t[0][y].l,t[0][x].l,l,mid,z);
}
else{yi+=t[0][t[0][x].l].size-t[0][t[0][y].l].size;findl(t[0][y].r,t[0][x].r,mid+1,r,z);}
}
void findr(int y,int x,int l,int r,int z){
if(l==r){yi+=t[1][x].size-t[1][y].size,sum+=t[1][x].sum-t[1][y].sum;return;}
int mid=(l+r)/2;
if(z<=mid){er+=t[1][t[1][x].r].size-t[1][t[1][y].r].size;findr(t[1][y].l,t[1][x].l,l,mid,z);}
else{
yi+=t[1][t[1][x].l].size-t[1][t[1][y].l].size;sum+=t[1][t[1][x].l].sum-t[1][t[1][y].l].sum;
findr(t[1][y].r,t[1][x].r,mid+1,r,z);
}
}
int main(){
freopen("sf.in","r",stdin);
freopen("sf.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&p1,&p2);
fo(i,1,n){
scanf("%d",&a[i]);
while(c[0]&&a[c[c[0]]]<=a[i])r[c[c[0]--]]=i;
if(c[0])l[i]=c[c[0]];
c[++c[0]]=i;
}
fo(i,1,n)r[i]=(!r[i])?n+1:r[i];
fo(i,1,n)
insert(root[0][i-1],root[0][i],0,n+1,l[i],0),insert(root[1][i-1],root[1][i],0,n+1,r[i],1);
fo(i,1,m){
scanf("%d%d",&x,&y);ans=ans1=0;
yi=er=sum=0;findl(root[0][x-1],root[0][y],0,n+1,x);ans+=er;
yi=er=sum=0;findl(root[0][x-1],root[0][y],0,n+1,x-1);sum+=er;ans1-=sum+yi*x;
yi=er=sum=0;findr(root[1][x-1],root[1][y],0,n+1,y);ans+=yi;
yi=er=sum=0;findr(root[1][x-1],root[1][y],0,n+1,y+1);sum-=yi;ans1+=sum+er*y;
ans=(ans1-ans)*p2+ans*p1;
printf("%lld\n",ans);
}
}