Pagini recente » Cod sursa (job #2678022) | Cod sursa (job #1553739) | Cod sursa (job #493524) | Cod sursa (job #2233795) | Cod sursa (job #2302171)
#include <bits/stdc++.h>
#define Nmax 2505
#define pii pair<int,int>
#define eps 0.00000001
#define MOD 104659
using namespace std;
int n,m,nr[Nmax],a,b,c;
long double mn[Nmax];
vector<pii> v[Nmax];
vector<int> H;
bool comp(int a,int b){
return mn[a] > mn[b];
}
int main()
{
freopen("dmin.in","r",stdin);
freopen("dmin.out","w",stdout);
cin >> n >> m;
for (int i=1;i<=m;i++){
cin >> a >> b >> c;
v[a].push_back({b,c});
v[b].push_back({a,c});
}
H.push_back(1);
mn[1] = 1;
nr[1] = 1;
while (!H.empty()){
int nod = H[0];
pop_heap(H.begin(),H.end(),comp);
H.pop_back();
for (auto it : v[nod]){
if (abs(mn[it.first])<eps){
mn[it.first] = mn[nod] * it.second;
nr[it.first] = nr[nod];
H.push_back(it.first);
}
else if (abs(mn[it.first] - mn[nod] * it.second) < eps){
nr[it.first] += nr[nod];
if (nr[it.first] >= MOD)
nr[it.first] -= MOD;
}
}
}
for (int i=2;i<=n;i++) cout << nr[i] << ' ';
return 0;
}