1の#include <stdio.hの> 2の#include <STDLIB.H> 3の#include < 文字列・H> 4 int型のマップ[ 100 ] [ 100 ]、[訪問100 ]、デュ[ 100 、]、フラグ、N、MをI、J、K。 5 INT メイン() 6 { 7 ながら(〜のscanf(" %D%dの"、&N、&M)) 8 { 9 のmemset(マップ、0、はsizeof (MAP))。 10 のmemset(訪問、0、はsizeof)(訪問)。 11 のmemset(DU、0、はsizeof (DU))。 12 一方(M-- ) 13 { 14 int型A、B。 15 のscanf(" %D%dの"、&、&B)。 16 地図[A] [B] = 1 。 17 デュ[B] ++ ; 18 } 19 用(i = 1 ; iが<= N; iは++ ) 20 { 21 フラグ= 0 。 22 用(J =1 ; J <= N。J ++ ) 23 { 24 であれば(訪問[j] == 0 &&デュ[j] == 0 ) 25 { 26は、 訪問[J] = 1 。 27 のための(K = 1 ; K <= N; ++ k個) 28 { 29 であれば(地図[J] [K] == 1 ) 30 デュ[K] - 。 31 } 32 フラグ= 1 。 33 ブレーク; 34 } 35 } 36 } 37 であれば(フラグ== 1)のprintf(" YESの\ n " ); 38 他の printf関数(" NO \ nを" ); 39 } 40 リターン 0 。 41 }