167672025-05-12 12:55:31RRoliKritikus munkákcpp17Wrong answer 0/100193ms7524 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	vector<int> be(n+1, 0), be_max(n+1, 0), vegso, jo(n+1, true);
	vector<vector<int>> ki(n+1, vector<int>(0));
	for(int i = 0; i < m; i++) {
		int e, u;
		cin >> e >> u;
		be[u]++;
        be_max[u]++;
		ki[e].push_back(u);
    }

	queue<int> sor;
	for(int i = 1; i <= n; i++) {
		if(be[i] == 0) {
			sor.push(i);
		}
	}

	while(sor.size() > 0) {
        bool benne_van = false;
        if(sor.size() == 1 && jo[sor.front()]) {
            vegso.push_back(sor.front());
            benne_van = true;
        }
        for(auto i : ki[sor.front()]) {
            if(be[i] != be_max[i] && benne_van) {
                vegso.pop_back();
                benne_van = false;
            }
            be[i]--;
            if(be[i] == 0) {
                sor.push(i);
            }
        }
        sor.pop();
    }
		
	cout << vegso.size() << '\n';
	for(auto i : vegso) cout << i << ' ';
	
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms508 KiB
2Wrong answer114ms4916 KiB
subtask20/25
3Wrong answer1ms512 KiB
4Wrong answer1ms496 KiB
5Wrong answer2ms316 KiB
6Wrong answer1ms508 KiB
7Wrong answer4ms316 KiB
subtask30/25
8Wrong answer32ms728 KiB
9Wrong answer13ms792 KiB
10Wrong answer13ms564 KiB
11Wrong answer21ms752 KiB
12Wrong answer23ms820 KiB
subtask40/25
13Wrong answer78ms3380 KiB
14Wrong answer90ms3892 KiB
15Wrong answer89ms3988 KiB
16Wrong answer83ms3884 KiB
17Wrong answer82ms3892 KiB
subtask50/25
18Wrong answer185ms7488 KiB
19Wrong answer193ms7476 KiB
20Wrong answer180ms7508 KiB
21Wrong answer185ms7476 KiB
22Wrong answer164ms7524 KiB