#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
#define endl '\n'
#define int long long
struct edge {
int sum = 0, len = 1e9 + 7;
// bool is_vis = 0;
} dis[N];
set <int>g[N];
int n, m;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int u, v;
cin >> u >> v;
g[u].insert(v);
g[v].insert(u);
}
queue<int>q;
q.push(1);
dis[1] = {1, 0};
while (!q.empty()) {
int u = q.front();
q.pop();
for (int i : g[u]) {
if (dis[u].len + 1 < dis[i].len || dis[i].len == 1e9 + 7) {
dis[i].sum = dis[u].sum;
dis[i].len = dis[u].len + 1;
q.push(i);
} else if (dis[i].len == dis[u].len + 1) {
dis[i].sum += dis[u].sum;
dis[i].sum %= 10003;
q.push(i);
}
}
}
for (int i = 1; i <= n; i++) {
cout << dis[i].sum << endl;
}
return 0;
}
交上去以后CE了,提示:Nothing is compiled: OUTPUT exceeds.
问题:p1144