7481 2024. 01. 09 10:15:10 Ghost Társaság (50) cpp17 Hibás válasz 0/50 10ms 4064 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 Összpont Teszt Verdikt Idő Memória
base 0/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Hibás válasz 0/0 7ms 2544 KiB
3 Hibás válasz 0/3 3ms 2132 KiB
4 Hibás válasz 0/3 3ms 2216 KiB
5 Hibás válasz 0/3 3ms 2304 KiB
6 Hibás válasz 0/3 3ms 2440 KiB
7 Hibás válasz 0/3 3ms 2668 KiB
8 Hibás válasz 0/3 3ms 2772 KiB
9 Hibás válasz 0/3 4ms 3072 KiB
10 Hibás válasz 0/3 4ms 3200 KiB
11 Hibás válasz 0/3 4ms 3248 KiB
12 Hibás válasz 0/3 7ms 3552 KiB
13 Hibás válasz 0/4 8ms 3540 KiB
14 Hibás válasz 0/4 8ms 3816 KiB
15 Hibás válasz 0/4 8ms 4012 KiB
16 Hibás válasz 0/4 9ms 4064 KiB
17 Hibás válasz 0/4 10ms 4064 KiB