Water collected between towers: Difference between revisions
Content added Content deleted
(implement in nim-lang) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 40: | Line 40: | ||
<br> |
<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}}== |
=={{header|8080 Assembly}}== |