Pagini recente » Cod sursa (job #1246277) | Cod sursa (job #524021) | Cod sursa (job #1224069) | Cod sursa (job #1279830) | Cod sursa (job #1947951)
#include<iostream>
#include<fstream>
using namespace std;
struct element
{
int x,y,c;
};
element v[100],aux;
int b[100][100]={},n;
int parcurgere(int i)
{
int viz[100]={},coada[100],u,p,k,j,ok=1;
viz[v[i].x]=1;
u=1;
p=1;
coada[u]=v[i].x;
while(p<=u)
{
k=coada[p];
for(j=1;j<=n;j++)
{
if((viz[j]==0)&&(b[k][j]==1))
{
viz[j]=1;
u++;
coada[u]=j;
}
}
p++;
}
if(viz[v[i].y]==1)
{
ok=0;
}
return ok;
}
int main()
{
int m,j,i,p,cost=0;
fstream f("apm.in",ios::in);
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>v[i].x>>v[i].y>>v[i].c;
}
f.close();
for(i=1;i<m;i++)
{
for(j=i+1;j<=m;j++)
{
if(v[i].c>v[j].c)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
}
p=0;
for(i=1;i<=m;i++)
{
if(parcurgere(i)==1)
{
b[v[i].y][v[i].x]=1;
b[v[i].x][v[i].y]=1;
p++;
cost=cost+v[i].c;
}
}
fstream g("apm.out",ios::out);
g<<cost<<endl;
g<<p<<endl;
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(b[i][j]==1)
{
g<<i<<" "<<j<<endl;
}
}
}
g.close();
}