Pagini recente » Cod sursa (job #3136013) | Cod sursa (job #1997414) | Istoria paginii tema | Cod sursa (job #12969) | Cod sursa (job #1434028)
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <climits>
#include <ctime>
#include <cstring>
using namespace std;
struct xxx {int a,b,c;};
xxx sol[400005],l[400005];
string s;
int s1(xxx x,xxx y)
{
if(x.c > y.c)
return 0;
return 1;
}
ifstream in ("apm.in");
ofstream g("apm.out");
int n, m;
int i, j, ct,k=0;
int v[200005], f[400005];
int main()
{
in >> n >> m;
int a,b,c;
xxx q;
q.a=q.b=q.c=-INT_MAX+1;
l[0]=q;
for(i=1; i<=m; i++)
{
in>>l[i].a>>l[i].b>>l[i].c;
//l.push_back(q);
}
make_heap(l+1,l+m+1,s1);
sort_heap(l+1,l+m+1,s1);
v[1]=1;
char x[20];
for(i=1; i<=m; i++)
{
a=l[i].a;
b=l[i].b;
c=l[i].c;
if(!f[i])
{
if(v[a] + v[b] ==1)
{
ct+=c;
f[i]++;
v[a]=v[b]=1;
i=0;
itoa(a,x,10);
s.insert(s.size(),x);
itoa(b,x,10);
s.insert(s.size()," ");
s.insert(s.size(),x);
s.insert(s.size(),"\n");
}
}
}
itoa(n-1,x,10);
s.insert(0,"\n");
s.insert(0,x);
s.insert(0,"\n");
itoa(ct,x,10);
s.insert(0,x);
g<<s;
}