#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct eg
{
int f, t, w;
friend bool operator < ( const eg& a, const eg& b) ;
} ;
bool operator < ( const eg& a, const eg& b)
{
return a.w < b.w ;
}
int f( int n, const vector< int > & p)
{
if ( p[ n] == n)
return n;
else
return f( p[ n] , p) ;
}
void g( int a, int b, vector< int > & p)
{
if ( rand ( ) % 2 )
p[ a] = b;
else
p[ b] = a;
}
int main( )
{
int n, m;
cin >> n >> m;
vector< eg> e;
for ( int i = 0 ; i < m; i++ )
{
eg t;
cin >> t.f >> t.t >> t.w ;
t.f -- ; t.t -- ;
e.push_back ( t) ;
}
sort( e.begin ( ) , e.end ( ) ) ;
vector< int > p( n) ;
for ( int i = 0 ; i < n; i++ )
p[ i] = i;
int se = INT_MAX , sum = 0 , cnt = 0 ;
for ( int i = 0 ; i < e.size ( ) ; i++ )
{
int a = f( e[ i] .f , p) , b = f( e[ i] .t , p) ;
if ( a == b)
se = min( i, se) ;
else
{
g( a, b, p) ;
sum + = e[ i] .w ;
cnt++ ;
}
}
if ( cnt ! = n- 1 )
{
cout << "Cost: -1" << endl;
cout << "Cost: -1" << endl;
return 0 ;
}
cout << "Cost: " << sum << endl;
if ( se == INT_MAX )
{
cout << "Cost: -1" << endl;
return 0 ;
}
sum = e[ se] .w ; cnt = 1 ;
for ( int i = 0 ; i < n; i++ )
p[ i] = i;
g( e[ se] .f , e[ se] .t , p) ;
for ( int i = 0 ; i < e.size ( ) ; i++ )
{
int a = f( e[ i] .f , p) , b = f( e[ i] .t , p) ;
if ( a ! = b)
{
g( a, b, p) ;
sum + = e[ i] .w ;
cnt++ ;
}
}
if ( cnt == n- 1 )
cout << "Cost: " << sum;
else
cout << "Cost: -1" ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBlZwp7CglpbnQgZiwgdCwgdzsKCWZyaWVuZCBib29sIG9wZXJhdG9yIDwgKGNvbnN0IGVnJiBhLCBjb25zdCBlZyYgYik7Cn07Cgpib29sIG9wZXJhdG9yIDwgKGNvbnN0IGVnJiBhLCBjb25zdCBlZyYgYikKewoJcmV0dXJuIGEudyA8IGIudzsKfQoKaW50IGYoaW50IG4sIGNvbnN0IHZlY3RvcjxpbnQ+JiBwKQp7CglpZiAocFtuXSA9PSBuKQoJCXJldHVybiBuOwoJZWxzZQoJCXJldHVybiBmKHBbbl0sIHApOwp9Cgp2b2lkIGcoaW50IGEsIGludCBiLCB2ZWN0b3I8aW50PiYgcCkKewoJaWYgKHJhbmQoKSUyKQoJCXBbYV0gPSBiOwoJZWxzZQoJCXBbYl0gPSBhOwp9CgppbnQgbWFpbigpCnsKCWludCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCgl2ZWN0b3I8ZWc+IGU7CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspCgl7CgkJZWcgdDsKCQljaW4gPj4gdC5mID4+IHQudCA+PiB0Lnc7CgkJdC5mLS07IHQudC0tOwoJCWUucHVzaF9iYWNrKHQpOwoJfQoJc29ydChlLmJlZ2luKCksIGUuZW5kKCkpOwoJdmVjdG9yPGludD4gcChuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCXBbaV0gPSBpOwoJCglpbnQgc2UgPSBJTlRfTUFYLCBzdW0gPSAwLCBjbnQgPSAwOwoKCWZvciAoaW50IGkgPSAwOyBpIDwgZS5zaXplKCk7IGkrKykKCXsKCQlpbnQgYSA9IGYoZVtpXS5mLCBwKSwgYiA9IGYoZVtpXS50LCBwKTsKCQlpZiAoYSA9PSBiKQoJCQlzZSA9IG1pbihpLCBzZSk7CgkJZWxzZQoJCXsKCQkJZyhhLCBiLCBwKTsKCQkJc3VtICs9IGVbaV0udzsKCQkJY250Kys7CgkJfQoJfQoKCWlmIChjbnQgIT0gbi0xKQoJewoJCWNvdXQgPDwgIkNvc3Q6IC0xIiA8PCBlbmRsOwoJCWNvdXQgPDwgIkNvc3Q6IC0xIiA8PCBlbmRsOwoJCXJldHVybiAwOwoJfQoKCWNvdXQgPDwgIkNvc3Q6ICIgPDwgc3VtIDw8IGVuZGw7CgoJaWYgKHNlID09IElOVF9NQVgpCgl7CgkJY291dCA8PCAiQ29zdDogLTEiIDw8IGVuZGw7CgkJcmV0dXJuIDA7Cgl9CgoJc3VtID0gZVtzZV0udzsgY250ID0gMTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCXBbaV0gPSBpOwoJZyhlW3NlXS5mLCBlW3NlXS50LCBwKTsKCglmb3IgKGludCBpID0gMDsgaSA8IGUuc2l6ZSgpOyBpKyspCgl7CgkJaW50IGEgPSBmKGVbaV0uZiwgcCksIGIgPSBmKGVbaV0udCwgcCk7CgkJaWYgKGEgIT0gYikKCQl7CgkJCWcoYSwgYiwgcCk7CgkJCXN1bSArPSBlW2ldLnc7CgkJCWNudCsrOwoJCX0KCX0KCglpZiAoY250ID09IG4tMSkKCQljb3V0IDw8ICJDb3N0OiAiIDw8IHN1bTsKCWVsc2UKCQljb3V0IDw8ICJDb3N0OiAtMSI7CgoJcmV0dXJuIDA7Cn0=
compilation info
prog.cpp: In function 'int main()':
prog.cpp:53:11: error: 'INT_MAX' was not declared in this scope
int se = INT_MAX, sum = 0, cnt = 0;
^
prog.cpp:63:4: error: 'sum' was not declared in this scope
sum += e[i].w;
^
prog.cpp:64:4: error: 'cnt' was not declared in this scope
cnt++;
^
prog.cpp:68:6: error: 'cnt' was not declared in this scope
if (cnt != n-1)
^
prog.cpp:75:22: error: 'sum' was not declared in this scope
cout << "Cost: " << sum << endl;
^
prog.cpp:83:17: error: 'cnt' was not declared in this scope
sum = e[se].w; cnt = 1;
^
stdout