#!/usr/bin/ruby #こういう時にゴルーチンって便利っぽいよねーと感じる… filter_right=lambda{|m| m.map{|e|(e>>1)&0xffff} } filter_left=lambda{|m| m.map{|e|(e<<1)&0xffff} } filter_up=lambda{|m| [0]+m[0..14] } filter_down=lambda{|m| m[1..15]+[0] } #Q1 m=DATA.map{|e|e.to_i(2)} [filter_right,filter_left,filter_up,filter_down].map{|e| e.call(m) }.transpose.map{|e| e.reduce(:&)^0xffff }.zip(m).map{|x,y| x&y }.each{|e| puts '%016b'%