Pagini recente » Cod sursa (job #3030717) | Cod sursa (job #1044888) | Cod sursa (job #1344426) | Cod sursa (job #2799754) | Cod sursa (job #2869334)
#include <bits/stdc++.h>
using namespace std;
ifstream f("apm.in");ofstream g("apm.out");
short int a[20005][20005];int n,m,x,y,c,s[200005],v[200005],mn,p,nr,vf[200005],S;
void prim(int x)
{
v[x]=1;
vf[++nr]=x;
s[x]=0;
for(int k=1;k<n;k++)
{
mn=1001;
for(int i=1;i<=nr;i++)
{
for(int j=1;j<=n;j++)
{
if(!v[j] && a[vf[i]][j]<mn)
{
mn=a[vf[i]][j];
p=j;y=vf[i];
}
}
}
s[p]=y;
v[p]=1;
vf[++nr]=p;
S+=mn;
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i!=j)a[i][j]=1005;
}
}
for(int i=1;i<=m;i++)
{
f>>x>>y>>c;
a[x][y]=a[y][x]=c;
}
prim(1);
g<<S<<'\n'<<n-1<<'\n';
for(int i=1;i<=n;i++)
{
if(s[i]!=0)g<<i<<" "<<s[i]<<'\n';
}
return 0;
}