13762022-08-28 13:35:57csandrasSportos nyaraláscpp11Accepted 40/40182ms37548 KiB
#include <bits/stdc++.h>

using namespace std;

using Graph = vector<vector<int>>;

void read_graph(Graph& G, int edge_count)
{
    for (int i = 0; i < edge_count; ++i)
    {
        int u, v;
        cin >> u >> v;
        --u, --v;
        G[u].push_back(v);
        G[v].push_back(u);
    }
}

void dfs(int p, const Graph& G, vector<bool>& visited, vector<int>& comp)
{
    visited[p] = true;
    comp.push_back(p);
    for (int q : G[p])
    {
        if (!visited[q])
        {
            dfs(q, G, visited, comp);
        }
    }
}

vector<vector<int>> get_components(const Graph& G)
{
    vector<vector<int>> components;
    vector<int> comp;
    vector<bool> visited(G.size(), false);
    for (int i = 0; i < G.size(); ++i)
    {
        if (!visited[i])
        {
            comp.clear();
            dfs(i, G, visited, comp);
            components.push_back(comp);
        }
    }
    return components;
}

int main()
{
    int N, M, K;
    cin >> N >> M >> K;
    Graph Ga(N);
    Graph Gb(N);
    read_graph(Ga, M);
    read_graph(Gb, K);

    vector<vector<int>> components_a = get_components(Ga);
    vector<int> comp_a_id(N);
    for (int i = 0; i < components_a.size(); ++i)
    {
        for (int x: components_a[i])
        {
            comp_a_id[x] = i;
        }
    }

    vector<int> ans(N);
    vector<int> comp_a_cnt(components_a.size());

    for (vector<int> comp_b : get_components(Gb))
    {
        for (int x : comp_b)
        {
            comp_a_cnt[comp_a_id[x]] += 1;
        }
        for (int x : comp_b)
        {
            ans[x] = comp_a_cnt[comp_a_id[x]] - 1;
        }
        for (int x : comp_b)
        {
            comp_a_cnt[comp_a_id[x]] = 0;
        }
    }

    for (int x : ans)
    {
        cout << x << " ";
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1936 KiB
2Accepted0/0120ms23340 KiB
3Accepted1/12ms3540 KiB
4Accepted1/12ms3744 KiB
5Accepted1/12ms3820 KiB
6Accepted1/12ms3824 KiB
7Accepted1/12ms3972 KiB
8Accepted1/12ms4044 KiB
9Accepted1/12ms4056 KiB
10Accepted1/14ms4472 KiB
11Accepted2/24ms4904 KiB
12Accepted2/24ms4736 KiB
13Accepted2/217ms5952 KiB
14Accepted2/213ms5896 KiB
15Accepted2/243ms15228 KiB
16Accepted2/261ms19268 KiB
17Accepted3/378ms23120 KiB
18Accepted3/381ms23788 KiB
19Accepted2/279ms18764 KiB
20Accepted2/2108ms24728 KiB
21Accepted2/2119ms27240 KiB
22Accepted2/2104ms30076 KiB
23Accepted3/3152ms33748 KiB
24Accepted3/3182ms37548 KiB