#include<bits/stdc++.h>
using namespace std;
int a[200000];
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
int n;
long long sum=0,ans=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
for(int i=0;i<n;i++)
{
sum-=a[i];
ans+=a[i]*sum;
}
cout<<ans;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{
int v,w;
};
struct edge{
int u,dis;
friend bool operator<(edge x,edge y){
return x.dis>y.dis;
}
};
vector<node>e[100005];
int n,m,s,dis[100005];
bool vis[100005];
void dijkstra(){
priority_queue<edge>q;
int u;
fill(dis,dis+100005,2147483647);
dis[1]=0;
q.push(edge{1,0});
while(!q.empty()){
u=q.top().u;
q.pop();
if(!vis[u]){
vis[u]=1;
for(auto i:e[u]){
if(!vis[i.v]&&dis[i.v]>dis[u]+i.w){
dis[i.v]=dis[u]+i.w;
q.push(edge{i.v,dis[i.v]});
}
}
}
}
if(dis[n]==2147483647)cout<<-1;
else cout<<dis[n];
}
signed main(){
ios::sync_with_stdio(0);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cout.flush();
int u,v,w;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
e[u].push_back(node{v,w});
}
dijkstra();
return 0;
}