148392025-02-04 15:24:11mateHálózati átvitelcpp17Hibás válasz 0/5065ms1844 KiB
#include <bits/stdc++.h>
#include <queue>
using namespace std;

vector <vector <pair<int,int>>> graf;
vector <int> dist;
vector <int> tavok;
vector <int> parent;
int tav = 0;

void bfs(int p, int h){
    priority_queue<pair<int,int>> pq;
    // , vector<pair<int,int>>, greater<pair<int,int>>
    pq.push({INT_MAX,p});
    tavok[p] = INT_MAX;
    parent[p] = p;
    while(!pq.empty()){
        auto csucs = pq.top();
        pq.pop();
        tavok[csucs.second] = max(min(tavok[parent[csucs.second]],csucs.first),tavok[csucs.second]);
        dist[csucs.second] = dist[parent[csucs.second]] + 1;
        cerr << csucs.second << ' ' << tavok[csucs.second] << '\n';

        if(dist[csucs.second] > h){
            continue;
        }

        for(auto x : graf[csucs.second]){
            if(tavok[x.second] == 0){
                
                
                pq.push(x);
                parent[x.second] = csucs.second;
                
                
            }
            //cerr << x.second << ' ' << tavok[x.second] << '\n';

            
        }
        cerr << '\n';
    }
}

int main() {
	int n,m,k,h; cin >> n >> m >> k >> h;
    int a,b,c;
    graf.resize(n+1);
    dist.resize(n+1,0);
    tavok.resize(n+1,0);
    parent.resize(n+1,0);
    for(int i = 0; i < m; i++){
        cin >> a >> b >> c;
        graf[a].push_back({c,b});
        graf[b].push_back({c,a});
    }
    bfs(k, h);
    for(int i = 1; i <=n; i++){
        if(tavok[i] == INT_MAX){
            cout << 0 << '\n';
        }else
        cout << tavok[i] << '\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/01ms500 KiB
2Hibás válasz0/02ms316 KiB
3Hibás válasz0/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/22ms316 KiB
6Hibás válasz0/23ms500 KiB
7Hibás válasz0/23ms320 KiB
8Hibás válasz0/24ms316 KiB
9Hibás válasz0/14ms316 KiB
10Hibás válasz0/16ms528 KiB
11Hibás válasz0/112ms656 KiB
12Hibás válasz0/114ms656 KiB
13Hibás válasz0/210ms644 KiB
14Hibás válasz0/214ms704 KiB
15Hibás válasz0/229ms972 KiB
16Hibás válasz0/226ms764 KiB
17Hibás válasz0/226ms964 KiB
18Hibás válasz0/230ms820 KiB
19Hibás válasz0/230ms976 KiB
20Hibás válasz0/228ms820 KiB
21Hibás válasz0/127ms1228 KiB
22Hibás válasz0/139ms1332 KiB
23Hibás válasz0/152ms1544 KiB
24Hibás válasz0/157ms1616 KiB
25Hibás válasz0/261ms1844 KiB
26Hibás válasz0/257ms1588 KiB
27Hibás válasz0/265ms1844 KiB
28Hibás válasz0/259ms1796 KiB
29Hibás válasz0/261ms1744 KiB
30Hibás válasz0/259ms1712 KiB
31Hibás válasz0/257ms1736 KiB
32Hibás válasz0/261ms1764 KiB