一直都是99,数出来应该是75
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read(){
ll x=0, f=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch == '-'){
f = -1;
}
ch = getchar();
}
while(ch>='0' && ch<='9'){
x = x * 10 + ch - 48;
ch = getchar();
}
return x * f;
}
struct edge{
ll to, dis;
};
edge e;
ll n, m, u, v, w, dis[1000086], vis[1000086], temp, ans;
vector<edge> a[10086], b[10086];
inline void dijkstra_back(){
memset(dis, 0x3f7f, sizeof(dis));
memset(vis, 0, sizeof(vis));
for(int i=0;i<b[1].size();++i){
dis[b[1][i].to] = b[1][i].dis;
}
dis[1] = 0, vis[1] = 1;
for(int i=2;i<=n;++i){
temp = INT_MAX;
for(int j=1;j<=n;++j){
if(!vis[j] && dis[j] < temp){
temp = dis[j];
u = j;
}
}
vis[u] = 1;
for(int j=0;j<b[u].size();++j){
dis[b[u][j].to] = min(dis[b[u][j].to], b[u][j].dis+dis[u]);
}
}
}
inline void dijkstra_go(){
memset(dis, 0x3f3f, sizeof(dis));
memset(vis, 0, sizeof(vis));
for(int i=0;i<a[1].size();++i){
dis[a[1][i].to] = a[1][i].dis;
}
dis[1] = 0, vis[1] = 1;
for(int i=2;i<=n;++i){
temp = INT_MAX;
for(int j=1;j<=n;++j){
if(!vis[j] && temp > dis[j]){
temp = dis[j];
u = j;
}
}
vis[u] = 1;
for(int j=0;j<a[u].size(); ++j){
dis[a[u][j].to] = min(dis[a[u][j].to], dis[u]+a[u][j].dis);
}
}
}
int main(){
n = read(), m = read();
for(int i=1;i<=m;++i){
u = read(), v = read(), w = read();
e.to = v;
e.dis = w;
a[u].push_back(e);
e.to = u;
b[v].push_back(e);
}
dijkstra_go();
for(int i=1;i<=n;++i){
ans += dis[i];
}
dijkstra_back();
for(int i=1;i<=n;++i){
ans += dis[i];
}
cout<<ans;
return 0;
}