Professional Documents
Culture Documents
Saksahmdf
Saksahmdf
EXPERIMENT NO:-5
Problem:- Print a single integer denoting the total weight of the Really Special SubTree.
Code:-
using namespace std;
#include<bits/stdc++.h>
#define PB push_back
17BCS2749
#define SZ size
#define MP make_pair
bool vis[3005];
std::vector<int> adj[3003];
int mat[3005][3005];
int n, e;
int main()
int i, j;
int cases;
//scan(cases);
//wl(cases)
cin>>n>>e;
fl(i,0,n+1)
17BCS2749
adj[i].clear();
vis[i]=0;
parent[i]=-1;
dist[i]=INT_MAX;
fl(i,0,n+1)
fl(j,0,n+1)
mat[i][j]=INT_MAX;
if(i==j)
mat[i][j]=0;
fl(i,0,e)
int x, y;
cin>>x>>y;
adj[x].PB(y);
adj[y].PB(x);
int val;
cin>>val;
mat[x][y]=mat[y][x]=min(val,mat[x][y]);
int ini;
cin>>ini;
17BCS2749
int node=ini;
dist[node]=0;
vis[node]=1;
while(1)
fl(i,0,n-1)
int this_dist=INT_MAX;
fl(j,1,n+1)
this_dist=dist[j];
node=j;
vis[node]=1;
int limit=adj[node].SZ();
17BCS2749
fl(j,0,limit)
dist[adj[node][j]]=mat[node][adj[node][j]];
parent[adj[node][j]]=node;
int f=0;
fl(i,1,n+1)
if(dist[i]==INT_MAX)
node=i;
dist[node]=0;
vis[node]=1;
parent[node]=node;
f=1;
break;
}
17BCS2749
if(f==0)
break;
ll ans=0;
fl(i,1,n+1)
ans+=mat[i][parent[i]];
cout<<ans;
nline;
return 0;
Output:-