92602024-02-19 12:47:39AblablablaHálózati átvitelcpp17Hibás válasz 1/5028ms7336 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

const int INF = 2e9 + 7;

struct pont{
    int a; // akt
    int t; // tav
    int h; // hasznalt
};

struct comp{
    bool operator()(pont a, pont b){
        return a.t < b.t;
    }
};

int main()
{
    int n, m, k, h;
    cin >> n >> m >> k >> h;
    k--;

    vector<vector<pii>> csucsok(n, vector<pii>());
    for(int i = 0; i < m; i++){
        int a, b, c;
        cin >> a >> b >> c;
        a--; b--;

        csucsok[a].push_back({b, c});
        csucsok[b].push_back({a, c});
    }

    priority_queue<pont, vector<pont>, comp> bejar;
    bejar.push({k, INF, 0});
    vector<bool> bejart(n, 0);
    vector<int> megoldas(n, -1);

    while(!bejar.empty()){
        int akt = bejar.top().a;
        int tav = bejar.top().t;
        int hasznalt = bejar.top().h;
        bejar.pop();

        if(hasznalt > h || bejart[akt]) continue;

        bejart[akt] = 1;
        megoldas[akt] = tav;

        for(pii x : csucsok[akt]){
            if(bejart[x.first]) continue;

            bejar.push({x.first, min(tav, x.second), hasznalt + 1});
        }
    }

    megoldas[k] = 0;
    for(int x : megoldas){
        cout << x << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/50
1Elfogadva0/03ms1816 KiB
2Hibás válasz0/03ms2068 KiB
3Elfogadva1/13ms2264 KiB
4Hibás válasz0/13ms2516 KiB
5Hibás válasz0/23ms2736 KiB
6Hibás válasz0/23ms2880 KiB
7Hibás válasz0/24ms2880 KiB
8Hibás válasz0/24ms3196 KiB
9Hibás válasz0/14ms3164 KiB
10Hibás válasz0/14ms3456 KiB
11Hibás válasz0/16ms3940 KiB
12Hibás válasz0/18ms4020 KiB
13Hibás válasz0/26ms3740 KiB
14Hibás válasz0/28ms4056 KiB
15Hibás válasz0/213ms4816 KiB
16Hibás válasz0/213ms5072 KiB
17Hibás válasz0/213ms5288 KiB
18Hibás válasz0/213ms5176 KiB
19Hibás válasz0/213ms5428 KiB
20Hibás válasz0/213ms5644 KiB
21Hibás válasz0/113ms5796 KiB
22Hibás válasz0/117ms5876 KiB
23Hibás válasz0/121ms6316 KiB
24Hibás válasz0/125ms6664 KiB
25Hibás válasz0/226ms7152 KiB
26Hibás válasz0/225ms6892 KiB
27Hibás válasz0/228ms7188 KiB
28Hibás válasz0/225ms7132 KiB
29Hibás válasz0/225ms7128 KiB
30Hibás válasz0/224ms7212 KiB
31Hibás válasz0/224ms7212 KiB
32Hibás válasz0/225ms7336 KiB