8523 | 2024. 01. 21 00:29:56 | kukkerman | Hálózati átvitel | cpp17 | Elfogadva 50/50 | 164ms | 11576 KiB |
#include <iostream>
#include <vector>
#include <unordered_set>
using Graf = std::vector<std::vector<std::pair<int, int>>>;
void beolvas(std::istream &be, int &k, int &h, Graf &g) {
int n, m;
be >> n >> m >> k >> h;
g.resize(n);
while (m-- > 0) {
int u, v, w;
be >> u >> v >> w;
g[u - 1].emplace_back(v - 1, w);
g[v - 1].emplace_back(u - 1, w);
}
}
void feldolgoz(int k, int h, const Graf &g) {
const auto n = g.size();
std::vector<int> sebessegek(n, -1);
sebessegek[--k] = 100'001;
std::unordered_set<int> akt_csomopontok;
akt_csomopontok.insert(k);
while (h-- > 0 && !akt_csomopontok.empty()) {
std::unordered_set<int> uj_csomopontok;
auto uj_sebessegek = sebessegek;
for (auto akt : akt_csomopontok) {
for (auto [szomszed, vonali_sebesseg] : g[akt]) {
const auto sz_sebesseg = std::min(sebessegek[akt], vonali_sebesseg);
if (uj_sebessegek[szomszed] < sz_sebesseg) {
uj_sebessegek[szomszed] = sz_sebesseg;
uj_csomopontok.insert(szomszed);
}
}
}
akt_csomopontok = std::move(uj_csomopontok);
sebessegek = std::move(uj_sebessegek);
}
sebessegek[k] = 0;
for (auto s : sebessegek) {
std::cout << s << '\n';
}
}
int main() {
int k, h;
Graf g;
beolvas(std::cin, k, h, g);
feldolgoz(k, h, g);
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1812 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2044 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2152 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2352 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 2452 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 2464 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 2484 KiB | |||
8 | Elfogadva | 2/2 | 4ms | 2760 KiB | |||
9 | Elfogadva | 1/1 | 4ms | 2760 KiB | |||
10 | Elfogadva | 1/1 | 4ms | 3236 KiB | |||
11 | Elfogadva | 1/1 | 7ms | 3208 KiB | |||
12 | Elfogadva | 1/1 | 8ms | 3452 KiB | |||
13 | Elfogadva | 2/2 | 8ms | 3348 KiB | |||
14 | Elfogadva | 2/2 | 8ms | 3568 KiB | |||
15 | Elfogadva | 2/2 | 14ms | 4228 KiB | |||
16 | Elfogadva | 2/2 | 14ms | 4588 KiB | |||
17 | Elfogadva | 2/2 | 14ms | 4820 KiB | |||
18 | Elfogadva | 2/2 | 14ms | 5192 KiB | |||
19 | Elfogadva | 2/2 | 14ms | 5476 KiB | |||
20 | Elfogadva | 2/2 | 14ms | 5492 KiB | |||
21 | Elfogadva | 1/1 | 19ms | 6504 KiB | |||
22 | Elfogadva | 1/1 | 32ms | 7144 KiB | |||
23 | Elfogadva | 1/1 | 32ms | 7796 KiB | |||
24 | Elfogadva | 1/1 | 41ms | 8500 KiB | |||
25 | Elfogadva | 2/2 | 50ms | 8932 KiB | |||
26 | Elfogadva | 2/2 | 54ms | 9480 KiB | |||
27 | Elfogadva | 2/2 | 50ms | 9896 KiB | |||
28 | Elfogadva | 2/2 | 140ms | 10584 KiB | |||
29 | Elfogadva | 2/2 | 163ms | 10644 KiB | |||
30 | Elfogadva | 2/2 | 164ms | 10920 KiB | |||
31 | Elfogadva | 2/2 | 164ms | 11296 KiB | |||
32 | Elfogadva | 2/2 | 164ms | 11576 KiB |