ファイルから入力を取得し、各行を配列に変換してから、その配列をセットに変換しています。しかし、変換すると、セットは次のようなものを返します。
<Set:0x6268f8>
ただし、IRBで同じことを実行すると、正しい値が返されます。
require 'set'
n,p = gets.chomp.split.map { |e| e.to_i }
arr = gets.chomp.split( ).map{|x| x.to_i}
print arr
puts
old_set = arr.to_set
print old_set
if old_set.length != 1
print "NO"
exit
end
入力ファイル:
3 6
0 0 0 0 0 0
1 1 1 1 1 1
2 2 2 2 2 2
これを実行すると、次のようになります。
C:\Ruby\kumar>ruby so.rb < abc.txt
[0, 0, 0, 0, 0, 0]
#<Set:0x3aad30>
IRBについて:
irb(main):010:0> arr = gets.chomp.split("")
aabbddefyy
=> ["a", "a", "b", "b", "d", "d", "e", "f", "y", "y"]
irb(main):011:0> se=arr.to_set
=> #<Set: {"a", "b", "d", "e", "f", "y"}>
irb(main):012:0> se
=> #<Set: {"a", "b", "d", "e", "f", "y"}>