Ja probował bym:
-podzielic graf na składowe;
-i dla kazdej składowej policzyc ilosc wierzcholkow o stopniu wejsciowym = 0;
dla przykładu 4 ->1->2->3
mamy jedna składowa .. i tylko jeden wierzchołek ma stopien wejsciowy = 0 ( wierchołek o nr 4)
zauwazmy co dzieje sie gdy jest cykl
1->2->3->1 ...wtedy zadnen wiercholek nie ma wejsciowego zero .. wiec kazdy z wiercholkow tej składowej moze byc Naszym punktem ;)
Cały algorytm:
-podzielenie grafu na skladowe(BFS || DFS) // składowych szukamy na grafie nieskierowanym
-dla kazdej składowej liczymy ilosc wierzcholkow o stopniu = 0 jezeli takie są to są to własnie Nasze punkty jezeli takich nie ma to swiadczy o tym ze składowa jest cyklem wiec wystarczy 1 dowolny wierchołek z cyklu
Może sie myle ;)