// SIGMA BOY hihihihihihihi
#define se second
#define fi first
#define pb push_back
#define pob pop_back
#define bitebi __builtin_popcountll
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
typedef pair<int,int> pii;
const ll Mod = 1e9+7;
const ll Maxn = 1e5+69;
const ll oo = 1e18;
ll dist[Maxn],t,w;
int parent[Maxn],n,m,u,v,f[Maxn],d[Maxn],vert;
vector<int> child[Maxn];
vector<pii> ke[Maxn];
struct cmp{
bool operator()(const ll &a , const ll &b)
{
return dist[a]>dist[b];
}
};
priority_queue<int,vector<int>,cmp> pq;
void Dequytinhf( int vert )
{
if(child[vert].empty()) return; // lá của cây
for ( auto x : child[vert] )
{
Dequytinhf(x);
f[vert]+=f[x];
}
}
void Solvef()
{
for(int i = 1 ; i <= n ; ++i)
child[parent[i]].pb(i);
Dequytinhf(1);
}
void Dijiska ()
{
pq.push(1);
dist[1]=0;
fill(d+1,d+1+n,0);
while(!pq.empty())
{
auto x = pq.top();
pq.pop();
for (auto Friend : ke[x])
{
vert = Friend.fi, w = Friend.se;
if(dist[vert]>dist[x]+w)
{
dist[vert] = dist[x]+w;
pq.push(vert);
parent[vert] = x ;
}
else if (parent[vert]>x&&dist[vert]==dist[x]+w) parent[vert] = x ;
}
}
Solvef();
// Thiết lập mảng f (mảng tính số lượng những thằng học sinh đã đi qua từng vị trí
}
void Do()
{
cin >> n >> m >> t ;
fill(dist+1,dist+1+n,oo);
for (int i = 1 ; i <= n ; ++i) cin >> f[i];
for (int i = 1 ; i <= m ; ++i)
{
cin >> u >> v >> w ;
ke[u].pb({v,w});
ke[v].pb({u,w});
}
Dijiska();
ll ans = 0 , curtime,slhs;
for (int i = 1 ; i <= n ; ++i)
{
curtime = dist[i];
slhs = f[i];
ans = max(ans,(curtime-t)*slhs);
}
cout << ans;
}
signed main ()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define task "test"
if(fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int ntest=1;
while(ntest--) Do();
cerr<<"\nTime elapsed: "<<1000*clock()/CLOCKS_PER_SEC<<"ms\n";
}
Ly8gU0lHTUEgQk9ZIGhpaGloaWhpaGloaWhpCgojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgYml0ZWJpIF9fYnVpbHRpbl9wb3Bjb3VudGxsCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsbDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKY29uc3QgbGwgTW9kID0gMWU5Kzc7CmNvbnN0IGxsIE1heG4gPSAxZTUrNjk7CmNvbnN0IGxsIG9vID0gMWUxODsKCgpsbCBkaXN0W01heG5dLHQsdzsKaW50IHBhcmVudFtNYXhuXSxuLG0sdSx2LGZbTWF4bl0sZFtNYXhuXSx2ZXJ0Owp2ZWN0b3I8aW50PiBjaGlsZFtNYXhuXTsKdmVjdG9yPHBpaT4ga2VbTWF4bl07CgpzdHJ1Y3QgY21wewogICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IGxsICZhICwgY29uc3QgbGwgJmIpCiAgICB7CiAgICAgICAgcmV0dXJuIGRpc3RbYV0+ZGlzdFtiXTsKICAgIH0KfTsKCnByaW9yaXR5X3F1ZXVlPGludCx2ZWN0b3I8aW50PixjbXA+IHBxOwoKdm9pZCBEZXF1eXRpbmhmKCBpbnQgdmVydCApCnsKICAgIGlmKGNoaWxkW3ZlcnRdLmVtcHR5KCkpIHJldHVybjsgLy8gbMOhIGPhu6dhIGPDonkKICAgIGZvciAoIGF1dG8geCA6IGNoaWxkW3ZlcnRdICkKICAgIHsKICAgICAgICBEZXF1eXRpbmhmKHgpOwogICAgICAgIGZbdmVydF0rPWZbeF07CiAgICB9Cn0KCnZvaWQgU29sdmVmKCkKewogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiA7ICsraSkKICAgICAgICBjaGlsZFtwYXJlbnRbaV1dLnBiKGkpOwogICAgRGVxdXl0aW5oZigxKTsKfQoKdm9pZCBEaWppc2thICgpCnsKICAgIHBxLnB1c2goMSk7CiAgICBkaXN0WzFdPTA7CiAgICBmaWxsKGQrMSxkKzErbiwwKTsKICAgIHdoaWxlKCFwcS5lbXB0eSgpKQogICAgewogICAgICAgIGF1dG8geCA9IHBxLnRvcCgpOwogICAgICAgIHBxLnBvcCgpOwogICAgICAgIGZvciAoYXV0byBGcmllbmQgOiBrZVt4XSkKICAgICAgICB7CiAgICAgICAgICAgIHZlcnQgPSBGcmllbmQuZmksIHcgPSBGcmllbmQuc2U7CiAgICAgICAgICAgIGlmKGRpc3RbdmVydF0+ZGlzdFt4XSt3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXN0W3ZlcnRdID0gZGlzdFt4XSt3OwogICAgICAgICAgICAgICAgcHEucHVzaCh2ZXJ0KTsKICAgICAgICAgICAgICAgIHBhcmVudFt2ZXJ0XSA9IHggOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHBhcmVudFt2ZXJ0XT54JiZkaXN0W3ZlcnRdPT1kaXN0W3hdK3cpIHBhcmVudFt2ZXJ0XSA9IHggOwogICAgICAgIH0KICAgIH0KICAgIFNvbHZlZigpOwogICAgLy8gVGhp4bq/dCBs4bqtcCBt4bqjbmcgZiAobeG6o25nIHTDrW5oIHPhu5EgbMaw4bujbmcgbmjhu69uZyB0aOG6sW5nIGjhu41jIHNpbmggxJHDoyDEkWkgcXVhIHThu6tuZyB24buLIHRyw60KCn0KCnZvaWQgRG8oKQp7CiAgICBjaW4gPj4gbiA+PiBtID4+IHQgOwogICAgZmlsbChkaXN0KzEsZGlzdCsxK24sb28pOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyArK2kpIGNpbiA+PiBmW2ldOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG0gOyArK2kpCiAgICB7CiAgICAgICAgY2luID4+IHUgPj4gdiA+PiB3IDsKICAgICAgICBrZVt1XS5wYih7dix3fSk7CiAgICAgICAga2Vbdl0ucGIoe3Usd30pOwogICAgfQogICAgRGlqaXNrYSgpOwogICAgbGwgYW5zID0gMCAsIGN1cnRpbWUsc2xoczsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKQogICAgewogICAgICAgIGN1cnRpbWUgPSBkaXN0W2ldOwogICAgICAgIHNsaHMgPSBmW2ldOwogICAgICAgIGFucyA9IG1heChhbnMsKGN1cnRpbWUtdCkqc2xocyk7CiAgICB9CiAgICBjb3V0IDw8IGFuczsKfQoKc2lnbmVkIG1haW4gKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKSwgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiNkZWZpbmUgdGFzayAidGVzdCIKICAgIGlmKGZvcGVuKHRhc2siLmlucCIsICJyIikpewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgbnRlc3Q9MTsKICAgIHdoaWxlKG50ZXN0LS0pIERvKCk7CgogICAgY2Vycjw8IlxuVGltZSBlbGFwc2VkOiAiPDwxMDAwKmNsb2NrKCkvQ0xPQ0tTX1BFUl9TRUM8PCJtc1xuIjsKfQo=