有n个人然后给他们分配从属关系 只有一个人是没有上级的,求最小花费
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
int q[1005];
vector<int> b[1005];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&q[i]);
int m;scanf("%d",&m);
while(m--)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
if(q[u]<=q[v])
continue;
b[v].push_back(w);
}
int ans=0,cnt=-1;
for(int i=1;i<=n;i++)
if(b[i].size())
ans+=*min_element(b[i].begin(),b[i].end());
else
{
cnt++;
if(cnt)
break;
}
cnt?printf("-1"):printf("%d",ans);
}