74812024-01-09 10:15:10GhostTársaság (50)cpp17Hibás válasz 0/5010ms4064 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <limits.h>

using namespace std;

int main()
{
    int n, k, i, temp1, temp2, max = 0;
    cin >> n >> k;

    vector<vector<pair<int, int>>> connections(n);
    for (i = 1; i < n; i++) {
        cin >> temp1 >> temp2;
        temp1--;
        connections[temp1].push_back({ i,temp2 });
    }

    queue<pair<int, int>> steps; // 0 current pos; 1 distance
    steps.push({ 0,0 });
    vector<int> distance(n, INT_MAX);
    while (steps.size() != 0) {
        int node = steps.front().first, dis = steps.front().second;
        steps.pop();
        if (dis < distance[node]) {
            distance[node] = dis;
        }
        if (max < dis) {
            max = dis;
        }
        for (i = 0; i < connections[node].size(); i++) {
            steps.push({ connections[node][i].first, dis + connections[node][i].second });
        }
    }
    for (i = 0; i < n; i++) {
        if (distance[i] == max) {
            cout << i+1;
            break;
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/03ms1816 KiB
2Hibás válasz0/07ms2544 KiB
3Hibás válasz0/33ms2132 KiB
4Hibás válasz0/33ms2216 KiB
5Hibás válasz0/33ms2304 KiB
6Hibás válasz0/33ms2440 KiB
7Hibás válasz0/33ms2668 KiB
8Hibás válasz0/33ms2772 KiB
9Hibás válasz0/34ms3072 KiB
10Hibás válasz0/34ms3200 KiB
11Hibás válasz0/34ms3248 KiB
12Hibás válasz0/37ms3552 KiB
13Hibás válasz0/48ms3540 KiB
14Hibás válasz0/48ms3816 KiB
15Hibás válasz0/48ms4012 KiB
16Hibás válasz0/49ms4064 KiB
17Hibás válasz0/410ms4064 KiB