236752026-01-27 10:42:00matemakaiLegtöbb unoka (80 pont)cpp17Elfogadva 80/808ms1588 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];
	}

	vector<int> roots;

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

	vector<int> cnt(n);
	for (auto root : roots) {
		dfs(root, adj, cnt);
	}

	int ans = 0;

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

	if (cnt[ans]) {
		cout << ans + 1 << " " << cnt[ans] << endl;
	} else {
		cout << -1 << endl;
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base80/80
1Elfogadva0/01ms500 KiB
2Elfogadva0/04ms820 KiB
3Elfogadva4/41ms316 KiB
4Elfogadva4/41ms316 KiB
5Elfogadva4/48ms820 KiB
6Elfogadva4/48ms804 KiB
7Elfogadva4/41ms316 KiB
8Elfogadva4/41ms316 KiB
9Elfogadva4/44ms608 KiB
10Elfogadva4/48ms708 KiB
11Elfogadva4/48ms820 KiB
12Elfogadva4/44ms820 KiB
13Elfogadva4/48ms1336 KiB
14Elfogadva4/48ms1076 KiB
15Elfogadva4/48ms700 KiB
16Elfogadva4/48ms820 KiB
17Elfogadva4/48ms1588 KiB
18Elfogadva4/48ms1308 KiB
19Elfogadva2/21ms564 KiB
20Elfogadva2/22ms564 KiB
21Elfogadva3/31ms580 KiB
22Elfogadva3/32ms1012 KiB
23Elfogadva3/38ms1556 KiB
24Elfogadva3/38ms1408 KiB