151492025-02-14 09:02:40csdavidHálózati átvitelcpp17Hibás válasz 0/5025ms5072 KiB
#include <iostream>
#include <vector>
#include <queue>
/*#include <fstream>
#define cin fin
std::ifstream fin("be2.txt");*/
using namespace std;

struct csucs{
    vector<pair<int, int>> szomszed;
    int maxsebesseg=-1;
    bool q=0;
    int dp[101];
};

int x, y, z, n, m, k, h;
csucs a[10000];
queue<int> q;

int main()
{
    cin >> n >> m >> k >> h;
    k--;
    for(int i=0; i<m; i++){
        cin >> x >> y >> z;
        x--;
        y--;
        a[x].szomszed.push_back(make_pair(y, z));
        a[y].szomszed.push_back(make_pair(y, z));
        for(auto& it:a[i].dp){
            it=0;
        }
    }
    a[k].maxsebesseg=1000000;
    a[k].dp[0]=1000000;
    q.push(k);
    while(!q.empty()){
        x=q.front();
        a[x].q=0;
        //cout << x+1 << " -> ";
        q.pop();
        for(pair<int, int>& it:a[x].szomszed){
            int speed=it.second;
            bool push=0;
            y=it.first;
            for(int i=0; i<h; i++){
                if(min(a[x].dp[i], speed)>a[y].dp[i+1]){
                    a[y].dp[i+1]=min(a[x].dp[i], speed);
                    push=1;
                    a[y].maxsebesseg=max(a[y].maxsebesseg, a[y].dp[i+1]);
                }
            }
            if(push&&!a[y].q){
                q.push(y);
                a[y].q=1;
            }
            /*if(min(a[x].sebesseg, it.second)>a[it.first].sebesseg&&a[x].tav<h){
                a[it.first].sebesseg=min(a[x].sebesseg, it.second);
                a[it.first].tav=a[x].tav+1;
                q.push(it.first);
            }*/
        }
    }
    a[k].maxsebesseg=0;
    for(int i=0; i<n; i++){
        cout << a[i].maxsebesseg << '\n';
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/04ms4660 KiB
2Hibás válasz0/04ms4660 KiB
3Hibás válasz0/14ms4660 KiB
4Hibás válasz0/14ms4660 KiB
5Hibás válasz0/24ms4596 KiB
6Hibás válasz0/24ms4852 KiB
7Hibás válasz0/26ms4660 KiB
8Hibás válasz0/24ms4668 KiB
9Hibás válasz0/16ms4660 KiB
10Hibás válasz0/17ms4660 KiB
11Hibás válasz0/18ms4660 KiB
12Hibás válasz0/19ms4852 KiB
13Hibás válasz0/29ms4836 KiB
14Hibás válasz0/210ms4876 KiB
15Hibás válasz0/225ms4984 KiB
16Hibás válasz0/218ms4892 KiB
17Hibás válasz0/219ms4992 KiB
18Hibás válasz0/225ms4988 KiB
19Hibás válasz0/225ms5004 KiB
20Hibás válasz0/220ms4776 KiB
21Hibás válasz0/114ms5028 KiB
22Futási hiba0/116ms4976 KiB
23Futási hiba0/117ms4984 KiB
24Futási hiba0/117ms4916 KiB
25Futási hiba0/216ms5028 KiB
26Futási hiba0/216ms4952 KiB
27Futási hiba0/216ms5056 KiB
28Futási hiba0/214ms5000 KiB
29Futási hiba0/216ms5000 KiB
30Futási hiba0/216ms4916 KiB
31Futási hiba0/214ms4932 KiB
32Futási hiba0/214ms5072 KiB