62422023-11-08 13:07:32CWMŐslényországcpp17Időlimit túllépés 15/1002.592s319424 KiB
// KKGyak.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
using namespace std;

#include <iostream>
#include <map>
#include <set>
#include <unordered_set>
#include <vector>
#include <algorithm>

void DFS(vector<vector<int>>& graph, int beginnode, int num, vector<unordered_set<int>>& edgeCont) {
    edgeCont[beginnode].insert(num);
    for (auto g : graph[beginnode]) {
        DFS(graph, g, num, edgeCont);
    }
}

int main()
{
    int a;
    cin >> a;
    vector<vector<int>> g1(a+1);
    for (size_t i = 2; i < a+1; i++)
    {
        int b;
        cin >> b;
        g1[b].push_back(i);
    }
    int c;
    cin >> c;
    vector<vector<int>> g2(c + 1);
    for (size_t i = 2; i < c + 1; i++)
    {
        int b;
        cin >> b;
        g2[b].push_back(i);
    }
    int d;
    cin >> d;
    vector<unordered_set<int>> edgeCont1(a+1);
    vector<unordered_set<int>> edgeCont2(c+1);
    vector<int> weights(d);
    for (size_t i = 0; i < d; i++)
    {
        int v1, v2, w;
        cin >> v1 >> v2 >> w;
        weights[i] = w;
        DFS(g1, v1, i, edgeCont1);
        DFS(g2, v2, i, edgeCont2);
    }
    int q;
    cin >> q;
    for (size_t i = 0; i < q; i++)
    {
        int q1, q2;
        cin >> q1 >> q2;
        long long res = 0;
        for (auto query : edgeCont2[q2]) {
            if (edgeCont1[q1].count(query) == 1) {
                res += weights[query];
            }
        }
        cout << res << "\n";
    }
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1812 KiB
subtask215/15
2Elfogadva8ms3024 KiB
3Elfogadva9ms3460 KiB
4Elfogadva8ms4360 KiB
5Elfogadva8ms4412 KiB
6Elfogadva97ms30708 KiB
7Elfogadva256ms59684 KiB
8Elfogadva39ms16088 KiB
9Elfogadva75ms26208 KiB
subtask30/30
10Időlimit túllépés2.576s217664 KiB
11Időlimit túllépés2.549s290700 KiB
12Időlimit túllépés2.585s299544 KiB
13Időlimit túllépés2.589s316492 KiB
14Időlimit túllépés2.578s245380 KiB
15Időlimit túllépés2.589s247304 KiB
subtask40/25
16Időlimit túllépés2.562s311296 KiB
17Időlimit túllépés2.571s235624 KiB
18Időlimit túllépés2.568s243572 KiB
19Időlimit túllépés2.591s224552 KiB
20Időlimit túllépés2.588s244916 KiB
21Időlimit túllépés2.568s245760 KiB
subtask50/30
22Időlimit túllépés2.578s241772 KiB
23Időlimit túllépés2.562s244848 KiB
24Időlimit túllépés2.592s319424 KiB
25Időlimit túllépés2.575s317256 KiB
26Időlimit túllépés2.588s310836 KiB