• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. int par[10005];
    6.  
    7. struct data
    8. {
    9. long u,v,cost;
    10. }arr[100005];
    11.  
    12. bool cmp(data lhs,data rhs)
    13. {
    14. return lhs.cost>rhs.cost;
    15. }
    16.  
    17. long khoj_rep(long r)
    18. {
    19. if(par[r]==r)
    20. {
    21. return r;
    22. }
    23. else
    24. {
    25. return par[r]=khoj_rep(par[r]);
    26. }
    27. }
    28.  
    29. int main()
    30. {
    31. long t,n,m,i,u,v,cost,sum,x,a;
    32. scanf("%ld",&t);
    33. for(x=1;x<=t;++x)
    34. {
    35. scanf("%ld%ld",&n,&m);
    36.  
    37. for(i=1;i<=n;++i)
    38. {
    39. par[i]=i;
    40. }
    41.  
    42. for(i=1;i<=m;++i)
    43. {
    44. scanf("%ld%ld%ld",&u,&v,&cost);
    45. arr[i].u=u;
    46. arr[i].v=v;
    47. arr[i].cost=cost;
    48. }
    49.  
    50. sort(arr+1,arr+m+1,cmp);
    51.  
    52. sum=0;
    53.  
    54. for(i=1;i<=m;i++)
    55. {
    56. u=khoj_rep(arr[i].u);
    57. v=khoj_rep(arr[i].v);
    58. if(u!=v)
    59. {
    60. par[u]=v;
    61. }
    62. else if(u==v)
    63. {
    64. sum+=arr[i].cost;
    65. }
    66. }
    67. printf("%ld\n",sum);
    68. if(x==t)
    69. {
    70. scanf("%ld",&a);
    71. }
    72. }
    73. return 0;
    74. }
    75.