#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e6+7, oo = LONG_LONG_MAX;
vector<ll> arr1[N], arr2[N], cond[N];
ll cnt = 0, sum = 0, low[N], val[N], dis[N];
map<ll, ll> roots;
bool visited[N];
stack<ll> st;
vector<pair<ll, ll>> arr[N];
void dfs1(ll node){
visited[node] = true;
for (ll child : arr1[node]){
if (!visited[child])
dfs1(child);
}
st.push(node);
}
void dfs2(ll node){
visited[node] = true;
sum += val[node];
for (ll child : arr2[node]){
if (!visited[child]) {
low[child] = low[node];
dfs2(child);
}
}
}
void dijkstra (ll dist, ll node){
priority_queue<pair<ll, ll>> pq;
pq.emplace(-dist, node);
dis[node] = dist;
while(!pq.empty()){
node = pq.top().second;
dist = -pq.top().first;
pq.pop();
if (dist > dis[node])
continue;
for(auto child : arr[node]){
if (dis[node] + child.first < dis[child.second]){
dis[child.second] = dis[node] + child.first;
pq.emplace(-dis[child.second], child.second);
}
}
}
}
int main()
{
cnt = 0;
for (int i = 0; i < N; ++i) {
arr[i].clear(), arr1[i].clear(), arr2[i].clear();
low[i] = i, val[i] = 0, dis[i] = oo;
visited[i] = false;
}
ll n, m, s, e, u, v;
cin >> n >> m >> s >> e;
s--, e--;
for (int i = 0; i < n; ++i) {
cin>> val[i];
}
for (int i = 0; i < m; ++i) {
cin >> u >> v;
u--, v--;
arr1[u].push_back(v);
arr2[v].push_back(u);
}
for (int i = 0; i < n; ++i) {
if (!visited[i])
dfs1(i);
}
for (int i = 0; i < n; ++i) {
visited[i] = false;
}
while(!st.empty()) {
if (!visited[st.top()]) {
sum = 0;
dfs2(st.top());
roots[st.top()] = sum;
cnt++;
}
st.pop();
}
for (int i = 0; i < n; ++i) {
for (auto j : arr1[i]) {
if (low[i] != low[j])
cond[i].push_back(j);
}
}
for (int i = 0; i < n; ++i) {
if (!cond[i].empty()){
for (int j = 0; j < cond[i].size(); ++j) {
arr[i].emplace_back(-roots[cond[i][j]], cond[i][j]);
}
}
}
dijkstra(-roots[low[s]], low[s]);
cout << -dis[low[e]] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgbGwgTiA9IDFlNis3LCBvbyA9IExPTkdfTE9OR19NQVg7Cgp2ZWN0b3I8bGw+IGFycjFbTl0sIGFycjJbTl0sIGNvbmRbTl07CmxsIGNudCA9IDAsIHN1bSA9IDAsIGxvd1tOXSwgdmFsW05dLCBkaXNbTl07Cm1hcDxsbCwgbGw+IHJvb3RzOwpib29sIHZpc2l0ZWRbTl07CnN0YWNrPGxsPiBzdDsKdmVjdG9yPHBhaXI8bGwsIGxsPj4gYXJyW05dOwoKdm9pZCBkZnMxKGxsIG5vZGUpewogICAgdmlzaXRlZFtub2RlXSA9IHRydWU7CiAgICBmb3IgKGxsIGNoaWxkIDogYXJyMVtub2RlXSl7CiAgICAgICAgaWYgKCF2aXNpdGVkW2NoaWxkXSkKICAgICAgICAgICAgZGZzMShjaGlsZCk7CiAgICB9CgogICAgc3QucHVzaChub2RlKTsKfQoKdm9pZCBkZnMyKGxsIG5vZGUpewogICAgdmlzaXRlZFtub2RlXSA9IHRydWU7CiAgICBzdW0gKz0gdmFsW25vZGVdOwogICAgZm9yIChsbCBjaGlsZCA6IGFycjJbbm9kZV0pewogICAgICAgIGlmICghdmlzaXRlZFtjaGlsZF0pIHsKICAgICAgICAgICAgbG93W2NoaWxkXSA9IGxvd1tub2RlXTsKICAgICAgICAgICAgZGZzMihjaGlsZCk7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIGRpamtzdHJhIChsbCBkaXN0LCBsbCBub2RlKXsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsIGxsPj4gcHE7CiAgICBwcS5lbXBsYWNlKC1kaXN0LCBub2RlKTsKICAgIGRpc1tub2RlXSA9IGRpc3Q7CgogICAgd2hpbGUoIXBxLmVtcHR5KCkpewogICAgICAgIG5vZGUgPSBwcS50b3AoKS5zZWNvbmQ7CiAgICAgICAgZGlzdCA9IC1wcS50b3AoKS5maXJzdDsKICAgICAgICBwcS5wb3AoKTsKCiAgICAgICAgaWYgKGRpc3QgPiBkaXNbbm9kZV0pCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGZvcihhdXRvIGNoaWxkIDogYXJyW25vZGVdKXsKICAgICAgICAgICAgaWYgKGRpc1tub2RlXSArIGNoaWxkLmZpcnN0IDwgZGlzW2NoaWxkLnNlY29uZF0pewogICAgICAgICAgICAgICAgZGlzW2NoaWxkLnNlY29uZF0gPSBkaXNbbm9kZV0gKyBjaGlsZC5maXJzdDsKICAgICAgICAgICAgICAgIHBxLmVtcGxhY2UoLWRpc1tjaGlsZC5zZWNvbmRdLCBjaGlsZC5zZWNvbmQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpCnsKICAgICAgICBjbnQgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSB7CiAgICAgICAgICAgIGFycltpXS5jbGVhcigpLCBhcnIxW2ldLmNsZWFyKCksIGFycjJbaV0uY2xlYXIoKTsKICAgICAgICAgICAgbG93W2ldID0gaSwgdmFsW2ldID0gMCwgZGlzW2ldID0gb287CiAgICAgICAgICAgIHZpc2l0ZWRbaV0gPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGxsIG4sIG0sIHMsIGUsIHUsIHY7CiAgICAgICAgY2luID4+IG4gPj4gbSA+PiBzID4+IGU7CiAgICAgICAgcy0tLCBlLS07CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGNpbj4+IHZhbFtpXTsKICAgICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgKytpKSB7CiAgICAgICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgICAgIHUtLSwgdi0tOwogICAgICAgICAgICBhcnIxW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICAgICAgYXJyMlt2XS5wdXNoX2JhY2sodSk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBpZiAoIXZpc2l0ZWRbaV0pCiAgICAgICAgICAgICAgICBkZnMxKGkpOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgdmlzaXRlZFtpXSA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgd2hpbGUoIXN0LmVtcHR5KCkpIHsKICAgICAgICAgICAgaWYgKCF2aXNpdGVkW3N0LnRvcCgpXSkgewogICAgICAgICAgICAgICAgc3VtID0gMDsKICAgICAgICAgICAgICAgIGRmczIoc3QudG9wKCkpOwogICAgICAgICAgICAgICAgcm9vdHNbc3QudG9wKCldID0gc3VtOwogICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3QucG9wKCk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBmb3IgKGF1dG8gaiA6IGFycjFbaV0pIHsKICAgICAgICAgICAgICAgIGlmIChsb3dbaV0gIT0gbG93W2pdKQogICAgICAgICAgICAgICAgICAgIGNvbmRbaV0ucHVzaF9iYWNrKGopOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBpZiAoIWNvbmRbaV0uZW1wdHkoKSl7CiAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbmRbaV0uc2l6ZSgpOyArK2opIHsKICAgICAgICAgICAgICAgICAgICBhcnJbaV0uZW1wbGFjZV9iYWNrKC1yb290c1tjb25kW2ldW2pdXSwgY29uZFtpXVtqXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGRpamtzdHJhKC1yb290c1tsb3dbc11dLCBsb3dbc10pOwogICAgICAgIGNvdXQgPDwgLWRpc1tsb3dbZV1dIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=