236742026-01-27 10:39:38matemakaiLegtöbb unoka (80 pont)cpp17Wrong answer 68/808ms1652 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;
		}
	}

	if (cnt[ans]) {
		cout << ans + 1 << " " << cnt[ans] << endl;
	} else {
		cout << -1 << endl;
	}
}
SubtaskSumTestVerdictTimeMemory
base68/80
1Accepted0/02ms316 KiB
2Wrong answer0/04ms820 KiB
3Accepted4/41ms316 KiB
4Accepted4/41ms316 KiB
5Accepted4/48ms820 KiB
6Accepted4/48ms812 KiB
7Accepted4/41ms508 KiB
8Accepted4/41ms332 KiB
9Accepted4/44ms612 KiB
10Accepted4/48ms820 KiB
11Accepted4/48ms812 KiB
12Accepted4/44ms820 KiB
13Accepted4/48ms1364 KiB
14Accepted4/48ms1204 KiB
15Accepted4/48ms816 KiB
16Accepted4/48ms820 KiB
17Accepted4/48ms1652 KiB
18Accepted4/48ms1364 KiB
19Accepted2/21ms568 KiB
20Accepted2/21ms564 KiB
21Wrong answer0/31ms564 KiB
22Wrong answer0/32ms756 KiB
23Wrong answer0/38ms1200 KiB
24Wrong answer0/38ms1076 KiB