File tree 1 file changed +85
-0
lines changed
1 file changed +85
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < bits/stdc++.h>
2
+ using namespace std ;
3
+
4
+ #define INF 0x3f3f3f3f
5
+ #define MOD 1000000007
6
+
7
+ #define ll long long
8
+ #define pb push_back
9
+ #define nl printf (" \n " );
10
+ #define vint vector<int >
11
+
12
+ vector<pair<int ,int >>g[100005 ];
13
+ int n;
14
+ int dist[100005 ];
15
+ void shortest_path (int s)
16
+ {
17
+ for (int i=0 ;i<100001 ;i++)
18
+ dist[i]=INF;
19
+ set<pair<int ,int >> setds;
20
+
21
+ setds.insert ({0 ,s});
22
+ dist[s]=0 ;
23
+ while (!setds.empty ())
24
+ {
25
+ pair<int ,int > temp;
26
+ temp=*(setds.begin ());
27
+ setds.erase (setds.begin ());
28
+
29
+ int u=temp.second ;
30
+ vector<pair<int ,int >>::iterator it;
31
+ for (it=g[u].begin ();it!=g[u].end ();it++)
32
+ {
33
+ int v = (*it).first ;
34
+ int weight = (*it).second ;
35
+ if (dist[v] > dist[u] + weight)
36
+ {
37
+ if (dist[v] != INF)
38
+ setds.erase (setds.find ({dist[v],v}));
39
+
40
+ dist[v]=dist[u] + weight;
41
+ setds.insert ({dist[v],v});
42
+ }
43
+ }
44
+ }
45
+
46
+ // printf("Vertex Distance from Source\n");
47
+ // for (int i = 0; i <= n ; ++i)
48
+ // printf("%d \t\t %d\n", i, dist[i]);
49
+
50
+ }
51
+
52
+ int main ()
53
+ {
54
+ ifstream myFile (" task.in" );
55
+ if (!myFile.fail ())
56
+ {
57
+ assert (freopen (" task.in" , " r" , stdin));
58
+ }
59
+ int m;
60
+ cin>>n>>m;
61
+ n--; // starting from 0
62
+ int total=0 ;
63
+ for (int i=0 ;i<m;i++)
64
+ {
65
+ int x,y,w;
66
+ cin>>x>>y>>w;
67
+ g[x].pb ({y,w});
68
+ g[y].pb ({x,w});
69
+ total+=w;
70
+ }
71
+ shortest_path (0 );
72
+ int ma=0 ,ind;
73
+ for (int i=0 ;i<n;i++)
74
+ if (dist[i] > ma)
75
+ ind=i,ma=dist[i];
76
+ for (int i=0 ;100001 ;i++)
77
+ dist[i]=INF;
78
+ shortest_path (ind);
79
+ for (int i=0 ;i<n;i++)
80
+ if (dist[i] > ma)
81
+ ind=i,ma=dist[i];
82
+ cout<<(total - dist[ind]);
83
+ nl
84
+ return 0 ;
85
+ }
You can’t perform that action at this time.
0 commit comments