Pagini recente » Cod sursa (job #2060507) | Cod sursa (job #1355758) | Cod sursa (job #297615) | Cod sursa (job #566102) | Cod sursa (job #2348103)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
struct lista{
int x,c;
};
vector <lista> v[400001];
int q[400001],viz[400001],d[400001],tata[400001],n,m,i,x,y,cost,Min,a;
void coada(int x){
int i,l,p,u;
p=u=1;
q[p]=x;
while(p<=u){
l=q[p];
p++;
if(viz[l]==0){
viz[l]=1;
for(i=0;i<v[l].size();i++)
if(viz[v[l][i].x]==0 && v[l][i].c<d[v[l][i].x]){
d[v[l][i].x]=v[l][i].c;
tata[v[l][i].x]=l;
u++;
q[u]=v[l][i].x;
}
}
}
}
int main()
{
ifstream cin("apm.in");
ofstream cout("apm.out");
cin>>n>>m;
for(i=1;i<=m;i++){
cin>>x>>y>>cost;
v[x].push_back({y,cost});
v[y].push_back({x,cost});
}
for(i=2;i<=n;i++)
d[i]=INT_MAX;
d[1]=0;
viz[1]=1;
for(i=0;i<v[1].size();i++){
d[i]=v[1][i].c;
tata[i]=1;
}
coada(1);
Min=INT_MAX;
for(i=2;i<=n;i++)
if(d[i]<Min){
Min=d[i];
a=i;
}
cout<<Min<<'\n'<<n-1<<'\n';
return 0;
}