제출 #1165682

#제출 시각아이디문제언어결과실행 시간메모리
1165682shinozBirmingham (COCI20_birmingham)C++20
70 / 70
81 ms8464 KiB
/* I n u z u k a S h i n o -w- */ #include <bits/stdc++.h> using namespace std; #define FILE(name) freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout) #define FOR(i, x, n) for (int i = x; i <= n; ++i) #define FOD(i, x, n) for (int i = x; i >= n; --i) #define REP(i, n) for (int i = 0; i < n; ++i) #define ALL(x) (x).begin(), (x).end() #define bit(n, i) ((n >> i) & 1) #define fi first #define se second #define ll long long #define pb push_back #define ii pair<int, int> const int N = 1e3 + 5; const int M = 1e5 + 5; const int MOD = 1e9 + 7; bool vis[M]; int n, m, q, k; int d[M], ans[M]; vector<int> a[M]; vector<int> knowed; void bfs(){ queue<int> q; for (int x: knowed) q.push(x); while (q.size()){ int u = q.front(); q.pop(); for (int v: a[u]){ if (vis[v]) continue; vis[v] = 1; d[v] = d[u] + 1; q.push(v); } } } int main(){ cin.tie(0) -> sync_with_stdio(0); cin >>n >>m >>q >>k; while (q--){ int x; cin >>x; vis[x] = 1; knowed.pb(x); } while (m--){ int u, v; cin >>u >>v; a[u].pb(v); a[v].pb(u); } bfs(); int step = 1, x = 1; while (step < n){ FOR(d, step, min(n, step + x * k)) ans[d] = x; step += x * k; ++x; } FOR(u, 1, n) cout <<ans[d[u]] <<' '; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...