236732026-01-27 10:38:52matemakaiLegtöbb unoka (80 pont)cpp17Wrong answer 48/808ms1664 KiB
#include <bits/stdc++.h>
using namespace std;

pair<int, int> dfs(int node, vector<vector<int>>& adj, vector<int>& cnt) {
	pair<int, int> p = {1, 0};

	for (auto child : adj[node]) {
		auto tmp_p = dfs(child, adj, cnt);
		cnt[node] += tmp_p.second;
		p.second += tmp_p.first;
	}

	return p;
}

int main() {
	int n, m;
	cin >> n >> m;
	vector<vector<int>> adj(n);
	vector<int> indegree(n);
	for (int i = 0; i < m; ++i) {
		int j, c;
		cin >> j >> c;
		--j;
		--c;
		adj[j].push_back(c);
		++indegree[c];
	}

	int root = 0;

	for (int i = 0; i < n; ++i) {
		if (indegree[i] == 0) {
			root = i;
		}
	}

	vector<int> cnt(n);

	dfs(root, adj, cnt);

	int ans = 0;

	for (int i = 0; i < n; ++i) {
		if (cnt[i] > cnt[ans]) {
			ans = i;
		}
	}

	cout << ans + 1 << " " << cnt[ans] << endl;
}
SubtaskSumTestVerdictTimeMemory
base48/80
1Accepted0/01ms316 KiB
2Wrong answer0/04ms820 KiB
3Wrong answer0/41ms316 KiB
4Wrong answer0/41ms316 KiB
5Accepted4/48ms820 KiB
6Accepted4/48ms820 KiB
7Wrong answer0/41ms316 KiB
8Wrong answer0/41ms316 KiB
9Accepted4/44ms572 KiB
10Accepted4/48ms812 KiB
11Accepted4/48ms856 KiB
12Accepted4/44ms820 KiB
13Accepted4/48ms1332 KiB
14Accepted4/48ms1140 KiB
15Accepted4/48ms820 KiB
16Accepted4/48ms816 KiB
17Accepted4/48ms1664 KiB
18Accepted4/48ms1332 KiB
19Wrong answer0/21ms564 KiB
20Wrong answer0/21ms692 KiB
21Wrong answer0/31ms568 KiB
22Wrong answer0/32ms528 KiB
23Wrong answer0/38ms1108 KiB
24Wrong answer0/38ms968 KiB