diff --git a/snail.nim b/snail.nim new file mode 100644 index 0000000..5bb454b --- /dev/null +++ b/snail.nim @@ -0,0 +1,62 @@ + +proc snail(xss: seq[seq[int]]): seq[int] = + let h = len(xss) + if h == 0: + return @[] + let w = len(xss[0]) + if h == 0: + return @[] + + let max = if h > w: + h + else: + w + + var v: seq[int] = @[] + + for b in 0..(max div 2): + let ex = w - b - 1; + let ey = h - b - 1; + + for c in b..ex: + v.add(xss[b][c]) + + for r in b+1..ey: + v.add(xss[r][ex]) + + if ex == b or ey == b: + return v + + for o in b..