148412025-02-04 15:32:18mateHálózati átvitelcpp17Hibás válasz 1/5064ms1588 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();
        if(dist[parent[csucs.second]] > h){
            continue;
        }
        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';

        

        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
        if(tavok[i] == 0){
            cout << -1 << '\n';
        }else
        cout << tavok[i] << '\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Elfogadva1/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/22ms316 KiB
6Hibás válasz0/23ms412 KiB
7Hibás válasz0/24ms444 KiB
8Hibás válasz0/26ms316 KiB
9Hibás válasz0/13ms508 KiB
10Hibás válasz0/16ms516 KiB
11Hibás válasz0/113ms612 KiB
12Hibás válasz0/117ms680 KiB
13Hibás válasz0/212ms480 KiB
14Hibás válasz0/217ms564 KiB
15Hibás válasz0/234ms820 KiB
16Hibás válasz0/237ms844 KiB
17Hibás válasz0/235ms832 KiB
18Hibás válasz0/234ms836 KiB
19Hibás válasz0/234ms860 KiB
20Hibás válasz0/235ms840 KiB
21Hibás válasz0/126ms1100 KiB
22Hibás válasz0/139ms1264 KiB
23Hibás válasz0/152ms1468 KiB
24Hibás válasz0/157ms1280 KiB
25Hibás válasz0/261ms1572 KiB
26Hibás válasz0/259ms1528 KiB
27Hibás válasz0/264ms1588 KiB
28Hibás válasz0/259ms1444 KiB
29Hibás válasz0/259ms1552 KiB
30Hibás válasz0/257ms1332 KiB
31Hibás válasz0/257ms1520 KiB
32Hibás válasz0/261ms1564 KiB