Pagini recente » Cod sursa (job #1326919) | Cod sursa (job #1598912) | Cod sursa (job #3253430) | Cod sursa (job #16962) | Cod sursa (job #1847058)
#include <fstream>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct{int in,out,cost;bool ok;}a[400001],aux;
int n,m,x,L[200001];
void sortare(){for(int i=0;i<m;i++)for (int j=i+1;j<=m;j++) if (a[i].cost>a[j].cost) aux=a[i],a[i]=a[j],a[j]=aux; }
void load()
{
f>>n>>m;
for (int i=0;i<=m;i++) f>>a[i].in>>a[i].out>>a[i].cost;for (int i=1;i<=n;i++) L[i]=i;
sortare();
}
void apm()
{int s=0,nr=0;
for (int i=0;i<=m;i++)
if (L[a[i].in]!=L[a[i].out])
{
s+=a[i].cost,nr++,a[i].ok=true,x=L[a[i].out],L[a[i].out]=L[a[i].in];
for (int j=1;j<=n;j++) if (L[j]==x) L[j]=L[a[i].in];
}
g<<s<<'\n'<<nr<<'\n';
for (int i=0;i<=m;i++)if (a[i].ok) g<<a[i].out<<' '<<a[i].in<<'\n';
}
int main()
{
load(),apm();
return 0;
}