#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=28000;
int a[N],ans[N],mp[1005][1005];
bool vis[N];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i],ans[i]=1;
int u,v,w;
cin>>u>>v>>w;
while(~scanf("%lld%lld%lld",&u,&v,&w))
mp[u+1][v+1]=mp[v+1][u+1]=w+1;
for(int i=1;i<=n;i++){
int minn=1e18,id=1145141919810;
for(int j=1;j<=n;j++)
if(!vis[j]&&a[j]<minn)
id=j,minn=a[j];
vis[id]=1;
for(int j=1;j<=n;j++)
if(vis[j]&&mp[id][j]){
if(a[id]+a[j]==a[mp[id][j]]) ans[mp[id][j]]+=ans[id]*ans[j];
if(a[id]+a[j]<a[mp[id][j]]) a[mp[id][j]]=a[id]+a[j],ans[mp[id][j]]=ans[id]*ans[j];
}
}
cout<<a[1]<<' '<<ans[1];
return 0;
}