#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 10010;
int n;
int co[N];
int u, v, w;
LL a[N][N];
LL f[N], dis[N];
bool vis[N];
void D() {
for(int i = 1; i <= n; ++ i) {
int k = 1, minn = 0x7fffffff;
for(int j = 1; j <= n; ++ j)
if(!vis[j] && co[j] < minn) k = j, minn = co[j];
vis[k] = 1;
for(int j = 1; j <= n; ++ j)
if(vis[j] && a[k][j] != -1) {
if(dis[k] + dis[j] == dis[a[k][j]]) f[a[k][j]] += f[k] * f[j];
if(dis[k] + dis[j] < dis[a[k][j]]) {
f[a[k][j]] = f[k] * f[j];
dis[a[k][j]] = dis[k] + dis[j];
}
}
}
}
int main() {
cin >> n;
for(int i = 1; i <= n; ++ i) {
cin >> co[i];
dis[i] = co[i];
f[i] = 1;
for(int j = 1; j <= n; ++ j) a[i][j] = -1;
}
while(cin >> u >> v >> w && u != EOF) {
a[u + 1][v + 1] = w + 1;
a[v + 1][u + 1] = w + 1;
}
D();
cout << dis[1] << ' ' << f[1];
}