Language: C++

#define _CRT_SECURE_NO_WARNINGS
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
namespace Program
{
    using namespace std;
    class Solver
    {
    private:
        const char *blk = " ";
        const char *nll = "\0";

        int N, K, L;
        int p, q;
        int r, s;

        // i2g[i] := アイテム i の所属するグループの番号
        // g2i[g] := グループ g に所属するアイテムたち
        vector<int> i2gRoad;
        vector< vector<int> > g2iRoad;
        vector<int> i2gRailway;
        vector< vector<int> > g2iRailway;

    public:
        // アイテム ia の所属するグループとアイテム ib のis_same_group所属するグループを
        // 1 つにする
        // (ia と ib は違うグループに所属するものとする)
        void merge(int ia, int ib, vector<int> &i2g, vector< vector<int> > &g2i) {
            // ia の所属するグループが
            // ib の所属するグループより小さくならないようにする
            if (g2i[i2g[ia]].size() < g2i[i2g[ib]].size()) {
                swap(ia, ib);
            }

            int ga = i2g[ia], gb = i2g[ib];
            if (ga != gb)
            {
                for (int j : g2i[gb]) i2g[j] = ga;
                g2i[ga].insert(g2i[ga].end(), g2i[gb].begin(), g2i[gb].end());
                g2i[gb].clear();
                sort(g2i[ga].begin(), g2i[ga].end());
            }
        }

        // アイテム ia とアイテム ib は同じグループに所属しているか ?
        bool is_same_group(int ia, int ib, vector<int> &i2g) {
            return i2g[ia] == i2g[ib];
        }

        Solver()
        {
            cin.tie(0);
            ios::sync_with_stdio(false);

            cin >> N >> K >> L;

            g2iRoad.resize(N);
            g2iRailway.resize(N);
            for (int i = 0; i < N; i++)
            {
                i2gRoad.push_back(i);
                g2iRoad[i].push_back(i);

                i2gRailway.push_back(i);
                g2iRailway[i].push_back(i);
            }

            for (int i = 0; i < K; i++)
            {
                cin >> p >> q;
                merge(p - 1, q - 1, i2gRoad, g2iRoad);
            }

            for (int i = 0; i < L; i++)
            {
                cin >> r >> s;
                merge(r - 1, s - 1, i2gRailway, g2iRailway);
            }
        }

        void Solve()
        {
            vector<int> v(N);
            vector<int>::iterator itr;

            for (int i = 0; i < N; i++)
            {
                int cnt = 0;

                vector<int> vRD = g2iRoad[i2gRoad[i]];
                vector<int> vRW = g2iRailway[i2gRailway[i]];

                //sort(vRD.begin(), vRD.end());
                //sort(vRW.begin(), vRW.end());

                v.clear();
                v.shrink_to_fit();

                set_intersection(
                    vRD.begin(), vRD.end(), vRW.begin(), vRW.end(), back_inserter(v));

                cout << ((i != 0) ? blk : nll) << v.size();
            }
            cout << endl;
        }
    };
}

int main()
{
    // メモリリーク検出
    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF
        | _CRTDBG_DELAY_FREE_MEM_DF
        | _CRTDBG_CHECK_ALWAYS_DF
        | _CRTDBG_LEAK_CHECK_DF);

    // メンバ関数ポインタ取得
    void (Program::Solver::*pSolve)() = &Program::Solver::Solve;

    // コンストラクタ呼び出し
    Program::Solver obj;

    // .*演算子でアクセス
    (obj.*pSolve)();
    return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:114:20: error: '_CRTDBG_ALLOC_MEM_DF' was not declared in this scope
  114 |     _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF
      |                    ^~~~~~~~~~~~~~~~~~~~
a.cc:115:11: error: '_CRTDBG_DELAY_FREE_MEM_DF' was not declared in this scope
  115 |         | _CRTDBG_DELAY_FREE_MEM_DF
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:116:11: error: '_CRTDBG_CHECK_ALWAYS_DF' was not declared in this scope
  116 |         | _CRTDBG_CHECK_ALWAYS_DF
      |           ^~~~~~~~~~~~~~~~~~~~~~~
a.cc:117:11: error: '_CRTDBG_LEAK_CHECK_DF' was not declared in this scope
  117 |         | _CRTDBG_LEAK_CHECK_DF);
      |           ^~~~~~~~~~~~~~~~~~~~~
a.cc:114:5: error: '_CrtSetDbgFlag' was not declared in this scope
  114 |     _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF
      |     ^~~~~~~~~~~~~~