@@ -289,10 +289,154 @@ int main() {
289289
290290### Java
291291
292+ ``` java
293+
294+ import java.util.* ;
295+
296+ public class Main {
297+
298+ public static void dfs (List<List<Integer > > graph , int key , boolean [] visited ) {
299+ for (int neighbor : graph. get(key)) {
300+ if (! visited[neighbor]) { // Check if the next node is not visited
301+ visited[neighbor] = true ;
302+ dfs(graph, neighbor, visited);
303+ }
304+ }
305+ }
306+
307+ public static void main (String [] args ) {
308+ Scanner scanner = new Scanner (System . in);
309+ int n = scanner. nextInt();
310+ int m = scanner. nextInt();
311+
312+ List<List<Integer > > graph = new ArrayList<> ();
313+ for (int i = 0 ; i <= n; i++ ) {
314+ graph. add(new ArrayList<> ());
315+ }
316+
317+ for (int i = 0 ; i < m; i++ ) {
318+ int s = scanner. nextInt();
319+ int t = scanner. nextInt();
320+ graph. get(s). add(t);
321+ }
322+
323+ boolean [] visited = new boolean [n + 1 ];
324+ visited[1 ] = true ; // Process node 1 beforehand
325+ dfs(graph, 1 , visited);
326+
327+ for (int i = 1 ; i <= n; i++ ) {
328+ if (! visited[i]) {
329+ System . out. println(- 1 );
330+ return ;
331+ }
332+ }
333+ System . out. println(1 );
334+ }
335+ }
336+
337+
338+ ```
339+
340+
292341### Python
293342
343+ ``` python
344+
345+ def dfs (graph , key , visited ):
346+ for neighbor in graph[key]:
347+ if not visited[neighbor]: # Check if the next node is not visited
348+ visited[neighbor] = True
349+ dfs(graph, neighbor, visited)
350+
351+ def main ():
352+ import sys
353+ input = sys.stdin.read
354+ data = input ().split()
355+
356+ n = int (data[0 ])
357+ m = int (data[1 ])
358+
359+ graph = [[] for _ in range (n + 1 )]
360+ index = 2
361+ for _ in range (m):
362+ s = int (data[index])
363+ t = int (data[index + 1 ])
364+ graph[s].append(t)
365+ index += 2
366+
367+ visited = [False ] * (n + 1 )
368+ visited[1 ] = True # Process node 1 beforehand
369+ dfs(graph, 1 , visited)
370+
371+ for i in range (1 , n + 1 ):
372+ if not visited[i]:
373+ print (- 1 )
374+ return
375+
376+ print (1 )
377+
378+ if __name__ == " __main__" :
379+ main()
380+
381+
382+ ```
383+
294384### Go
295385
386+ ``` go
387+
388+ package main
389+
390+ import (
391+ " bufio"
392+ " fmt"
393+ " os"
394+ )
395+
396+ func dfs (graph [][]int , key int , visited []bool ) {
397+ visited[key] = true
398+ for _ , neighbor := range graph[key] {
399+ if !visited[neighbor] {
400+ dfs (graph, neighbor, visited)
401+ }
402+ }
403+ }
404+
405+ func main () {
406+ scanner := bufio.NewScanner (os.Stdin )
407+ scanner.Scan ()
408+ var n , m int
409+ fmt.Sscanf (scanner.Text (), " %d %d " , &n, &m)
410+
411+ graph := make ([][]int , n+1 )
412+ for i := 0 ; i <= n; i++ {
413+ graph[i] = make ([]int , 0 )
414+ }
415+
416+ for i := 0 ; i < m; i++ {
417+ scanner.Scan ()
418+ var s , t int
419+ fmt.Sscanf (scanner.Text (), " %d %d " , &s, &t)
420+ graph[s] = append (graph[s], t)
421+ }
422+
423+ visited := make ([]bool , n+1 )
424+
425+ dfs (graph, 1 , visited)
426+
427+ for i := 1 ; i <= n; i++ {
428+ if !visited[i] {
429+ fmt.Println (-1 )
430+ return
431+ }
432+ }
433+ fmt.Println (1 )
434+ }
435+
436+
437+ ```
438+
439+
296440### Rust
297441
298442### Javascript
0 commit comments