Artifact 7857b17ad5edb6a752dd5335d60d8cc11b45d0e4:
0000: 53 54 44 45 52 52 2e 70 72 69 6e 74 20 22 4e 75 STDERR.print "Nu
0010: 6d 62 65 72 20 6f 66 20 6e 6f 64 65 73 3f 20 22 mber of nodes? "
0020: 0a 56 20 3d 20 67 65 74 73 2e 74 6f 5f 69 0a 0a .V = gets.to_i..
0030: 53 54 44 45 52 52 2e 70 72 69 6e 74 20 22 44 69 STDERR.print "Di
0040: 72 65 63 74 65 64 20 28 75 2f 64 29 3f 20 22 0a rected (u/d)? ".
0050: 44 20 3d 20 28 67 65 74 73 2e 63 68 6f 6d 70 2e D = (gets.chomp.
0060: 64 6f 77 6e 63 61 73 65 3d 3d 22 64 22 29 3b 0a downcase=="d");.
0070: 0a 45 53 20 3d 20 5b 5d 0a 6c 6f 6f 70 20 64 6f .ES = [].loop do
0080: 0a 09 53 54 44 45 52 52 2e 70 72 69 6e 74 20 22 ..STDERR.print "
0090: 45 64 67 65 20 28 75 20 76 29 3f 20 22 0a 09 65 Edge (u v)? "..e
00a0: 64 67 65 20 3d 20 67 65 74 73 2e 73 70 6c 69 74 dge = gets.split
00b0: 2e 6d 61 70 28 26 3a 74 6f 5f 69 29 0a 09 62 72 .map(&:to_i)..br
00c0: 65 61 6b 20 69 66 20 65 64 67 65 2e 73 69 7a 65 eak if edge.size
00d0: 3d 3d 30 0a 09 45 53 20 3c 3c 20 65 64 67 65 0a ==0..ES << edge.
00e0: 65 6e 64 0a 0a 56 2e 74 69 6d 65 73 20 64 6f 20 end..V.times do
00f0: 7c 79 7c 0a 09 70 75 74 73 20 28 30 2e 2e 2e 56 |y|..puts (0...V
0100: 29 2e 6d 61 70 7b 7c 78 7c 0a 09 09 28 44 20 3f ).map{|x|...(D ?
0110: 20 45 53 2e 69 6e 64 65 78 28 5b 79 2c 78 5d 29 ES.index([y,x])
0120: 20 3a 20 45 53 2e 69 6e 64 65 78 28 5b 79 2c 78 : ES.index([y,x
0130: 5d 29 20 7c 7c 20 45 53 2e 69 6e 64 65 78 28 5b ]) || ES.index([
0140: 78 2c 79 5d 29 29 20 3f 20 22 59 22 20 3a 20 22 x,y])) ? "Y" : "
0150: 4e 22 0a 09 7d 2a 22 22 0a 65 6e 64 0a N"..}*"".end.