Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BEGIN {t = Time.now}
- END {
- t2 = Time.now
- print "\nElapsed #{t2-t}s\n"
- }
- str = File.read('many/pub06.in')
- $size_y, $size_x = str.lines.first.split(" ").map(&:to_i)
- $table = str.lines[1..$size_y].map{|a|a.split(" ").map(&:to_i)}
- def path(x, y)
- val = $table[y][x]
- if val < 0
- return false
- else
- $table[y][x] = -1000
- end
- #X+
- (x+val+(val>0?0:1)...$size_x).each do |i|
- if val+$table[y][i] == i-x
- path(i, y)
- end
- end
- #Y+
- (y+val+(val>0?0:1)...$size_y).each do |i|
- if val+$table[i][x] == i-y
- path(x, i)
- end
- end
- #X-
- (0...x-val).each do |i|
- if val+$table[y][i] == x-i
- path(i, y)
- end
- end
- #Y-
- (0...y-val).each do |i|
- if val+$table[i][x] == y-i
- path(x, i)
- end
- end
- end
- c = 0
- (0...$size_y).each do |y|
- (0...$size_x).each do |x|
- unless $table[y][x] < 0
- path(x, y)
- c += 1
- end
- end
- end
- p c
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement