11232022-03-04 10:22:26kidesoSportos nyaraláscpp14Hibás válasz 2/40107ms29440 KiB
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

const int n = 50000;
vector<int> p[n + 1], z[n + 1];
int pk[n + 1], zk[n + 1], ans[n + 1];
bool lp[n + 1], lz[n + 1];
int N, P, Z;

void szelp(int kp, int s) {
	queue<int> y;
	lp[kp] = true;
	pk[kp] = s;
	y.push(kp);

	while (!y.empty()) {
		int csp = y.front();
		y.pop();

		for (auto e : p[csp])
			if (!lp[e]) {
				lp[e] = true;
				pk[e] = s;
				y.push(e);
			}
	}
}
void szelz(int kp, int s) {
	queue<int> y;
	lz[kp] = true;
	zk[kp] = s;
	y.push(kp);

	while (!y.empty()) {
		int csp = y.front();
		y.pop();

		for (auto e : z[csp]) {
			if (!lz[e]) {
				lz[e] = true;
				zk[e] = s;
				y.push(e);
			}

			if (pk[e] * pk[csp] != 0){
				if (pk[e] == pk[csp]) ++ans[csp];
			}

		}
	}
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	cin >> N >> P >> Z;

	for (int i = 1; i <= P; ++i) {
		int a, b;
		cin >> a >> b;
		p[a].push_back(b), p[b].push_back(a);
	}

	for (int i = 1; i <= Z; ++i) {
		int a, b;
		cin >> a >> b;
		z[a].push_back(b), z[b].push_back(a);
	}

	int ps = 1, zs = 1;
	for (int i = 1; i <= N; ++i) {
		if (!lp[i]) {
			szelp(i, ps);
			++ps;
		}
	}

	for (int i = 1; i <= N; ++i) {
		if (!lz[i]) {
			szelz(i, zs);
			++zs;
		}
	}

	for (int i = 1; i <= N; ++i)
		cout << ans[i] << ' ';

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/40
1Elfogadva0/04ms6532 KiB
2Hibás válasz0/071ms15708 KiB
3Elfogadva1/14ms7936 KiB
4Hibás válasz0/14ms7936 KiB
5Hibás válasz0/14ms7940 KiB
6Elfogadva1/13ms7948 KiB
7Hibás válasz0/13ms7952 KiB
8Hibás válasz0/13ms7956 KiB
9Hibás válasz0/14ms7960 KiB
10Hibás válasz0/14ms8168 KiB
11Hibás válasz0/24ms8212 KiB
12Hibás válasz0/24ms8240 KiB
13Hibás válasz0/28ms9072 KiB
14Hibás válasz0/28ms9104 KiB
15Hibás válasz0/227ms12468 KiB
16Hibás válasz0/237ms14348 KiB
17Hibás válasz0/343ms16116 KiB
18Hibás válasz0/346ms17084 KiB
19Hibás válasz0/250ms16848 KiB
20Hibás válasz0/254ms20300 KiB
21Hibás válasz0/264ms22152 KiB
22Hibás válasz0/256ms22632 KiB
23Hibás válasz0/3107ms26348 KiB
24Hibás válasz0/3104ms29440 KiB