#include<bits/stdc++.h>
#define MAXN 10001
using namespace std;
typedef long long int ll;
int n;
ll a, b, c, d;
ll in[MAXN], nex[MAXN];
bool ff[MAXN];
ll mul(ll p, ll q){
if(q<1000000) return p*q%c;
if(q%2==0) return mul(p,q/2)*2%c;
return (mul(p,q/2)*2+p)%c;
}
ll dist(int p, int q){
if(p>q){int tmp=p; p=q; q=tmp;}
return ((mul(in[p],a) + mul(in[q],b))%c)^d;
}
int main()
{
int i, j;
cin >> n;
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
for(i=1; i<=n; i++) scanf("%lld",&in[i]);
ll ans=0;
int p=1;
for(i=2; i<=n; i++) nex[i] = LLONG_MAX;
for(i=1; i<n; i++){
ff[p]=1;
ll mini=LLONG_MAX; int minx=0;
for(j=1; j<=n; j++){
if(ff[j]) continue;
nex[j] = min(nex[j], dist(p,j));
if(mini > nex[j]){mini=nex[j]; minx=j;}
}
p = minx;
ans += mini;
}
cout << ans;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBNQVhOIDEwMDAxIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CmludCBuOwpsbCBhLCBiLCBjLCBkOwpsbCBpbltNQVhOXSwgbmV4W01BWE5dOwpib29sIGZmW01BWE5dOwpsbCBtdWwobGwgcCwgbGwgcSl7CglpZihxPDEwMDAwMDApIHJldHVybiBwKnElYzsKCWlmKHElMj09MCkgcmV0dXJuIG11bChwLHEvMikqMiVjOwoJcmV0dXJuIChtdWwocCxxLzIpKjIrcCklYzsKfQpsbCBkaXN0KGludCBwLCBpbnQgcSl7CglpZihwPnEpe2ludCB0bXA9cDsgcD1xOyBxPXRtcDt9CglyZXR1cm4gKChtdWwoaW5bcF0sYSkgKyBtdWwoaW5bcV0sYikpJWMpXmQ7Cn0KaW50IG1haW4oKQp7CglpbnQgaSwgajsKCWNpbiA+PiBuOwoJc2NhbmYoIiVsbGQlbGxkJWxsZCVsbGQiLCZhLCZiLCZjLCZkKTsKCWZvcihpPTE7IGk8PW47IGkrKykgc2NhbmYoIiVsbGQiLCZpbltpXSk7CglsbCBhbnM9MDsKCWludCBwPTE7Cglmb3IoaT0yOyBpPD1uOyBpKyspIG5leFtpXSA9IExMT05HX01BWDsKCWZvcihpPTE7IGk8bjsgaSsrKXsKCQlmZltwXT0xOwoJCWxsIG1pbmk9TExPTkdfTUFYOyBpbnQgbWlueD0wOwoJCWZvcihqPTE7IGo8PW47IGorKyl7CgkJCWlmKGZmW2pdKSBjb250aW51ZTsKCQkJbmV4W2pdID0gbWluKG5leFtqXSwgZGlzdChwLGopKTsKCQkJaWYobWluaSA+IG5leFtqXSl7bWluaT1uZXhbal07IG1pbng9ajt9CgkJfQoJCXAgPSBtaW54OwoJCWFucyArPSBtaW5pOwoJfQoJY291dCA8PCBhbnM7CglyZXR1cm4gMDsKfQo=