Pagini recente » Cod sursa (job #1681816) | Cod sursa (job #992461) | Cod sursa (job #2986770) | Cod sursa (job #2158529) | Cod sursa (job #2327961)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct pct
{
deque<int> val,leg;
};
deque<short> dist;
deque<bool> viz;
int main()
{
short n,m,i;
f>>n>>m;
deque<pct> v;
v.resize(n+2);
for(i=1;i<=m;i++)
{
int x,y,va;
f>>x>>y>>va;
v[x].leg.push_back(y);
v[x].val.push_back(va);
v[y].leg.push_back(x);
v[y].val.push_back(va);
}
dist.resize(n+1);
viz.resize(n+1);
deque<short>aux;long smax=-1;
for(int j=1;j<=n;j++)
{
aux.push_back(j);
while(!aux.empty())
{
int nr=aux.front();
aux.pop_front();
for(i=0;i<v[nr].leg.size();i++)
{
if(viz[v[nr].leg[i]]==0)
{
dist[v[nr].leg[i]]=dist[nr]+v[nr].val[i];
viz[v[nr].leg[i]]=1;
aux.push_back(v[nr].leg[i]);
}
else
{
if(dist[v[nr].leg[i]]>dist[nr]+v[nr].val[i])
{
dist[v[nr].leg[i]]=dist[nr]+v[nr].val[i];
aux.push_back(v[nr].leg[i]);
}
}
}
}
long s=0;
for(i=1;i<=n;i++)
s+=dist[i];
if(s>smax)
smax=s;
dist.resize(0);
viz.resize(0);
dist.resize(n+1);
viz.resize(n+1);
}
g<<smax;
return 0;
}