Water collected between towers: Difference between revisions

Added 11l
(implement in nim-lang)
(Added 11l)
Line 40:
 
<br>
 
=={{header|11l}}==
{{trans|Python}}
 
<lang 11l>F water_collected(tower)
V l = tower.len
V highest_left = [0] [+] (1 .< l).map(n -> max(@tower[0 .< n]))
V highest_right = (1 .< l).map(n -> max(@tower[n .< @l])) [+] [0]
V water_level = (0 .< l).map(n -> max(min(@highest_left[n], @highest_right[n]) - @tower[n], 0))
print(‘highest_left: ’highest_left)
print(‘highest_right: ’highest_right)
print(‘water_level: ’water_level)
print(‘tower_level: ’tower)
print(‘total_water: ’sum(water_level))
print(‘’)
R sum(water_level)
 
V towers = [
[1, 5, 3, 7, 2],
[5, 3, 7, 2, 6, 4, 5, 9, 1, 2],
[2, 6, 3, 5, 2, 8, 1, 4, 2, 2, 5, 3, 5, 7, 4, 1],
[5, 5, 5, 5],
[5, 6, 7, 8],
[8, 7, 7, 6],
[6, 7, 10, 7, 6]]
 
print(towers.map(tower -> water_collected(tower)))</lang>
 
{{out}}
<pre>
highest_left: [0, 1, 5, 5, 7]
highest_right: [7, 7, 7, 2, 0]
water_level: [0, 0, 2, 0, 0]
tower_level: [1, 5, 3, 7, 2]
total_water: 2
 
highest_left: [0, 5, 5, 7, 7, 7, 7, 7, 9, 9]
highest_right: [9, 9, 9, 9, 9, 9, 9, 2, 2, 0]
water_level: [0, 2, 0, 5, 1, 3, 2, 0, 1, 0]
tower_level: [5, 3, 7, 2, 6, 4, 5, 9, 1, 2]
total_water: 14
 
...
 
highest_left: [0, 6, 7, 10, 10]
highest_right: [10, 10, 7, 6, 0]
water_level: [0, 0, 0, 0, 0]
tower_level: [6, 7, 10, 7, 6]
total_water: 0
 
[2, 14, 35, 0, 0, 0, 0]
</pre>
 
=={{header|8080 Assembly}}==
1,480

edits