Skip to content

Instantly share code, notes, and snippets.

@seliverstov-maxim
Last active January 10, 2019 10:11
Show Gist options
  • Save seliverstov-maxim/ee5fe89101d8000ba7b376efc472e87f to your computer and use it in GitHub Desktop.
Save seliverstov-maxim/ee5fe89101d8000ba7b376efc472e87f to your computer and use it in GitHub Desktop.
Найти площадь луж
def calc(map)
....
end
def assert(map, res)
puts calc(map) == res ? 'Ok' : 'False'
end
assert([4,3,2,1,1,2,3], 6)
assert([1,2,2,3,5,5,6], 0)
assert([6,5,5,3,2,2,1], 0)
assert([1,3,1,2,3,1], 3)
assert([2,5,1,2,3,4,7,7,6,7,2,4], 13)
assert([2,3,6,5,2,3,5,2,4,7,6], 15)
assert([2,5,1,2,3,4,7,7,6,7], 11)
@seliverstov-maxim
Copy link
Author

seliverstov-maxim commented Jan 10, 2019

На вход функции подается график в виде массива целочисленных значений от 0 до бесконечности.
Порядковый номер числа - это значение x, само число - это значение y.

Представим, что график - это 2х-мерная поверхность (в виде острова посреди океана), над которой прошел дождь, после чего образовались лужи во впадинах поверхности. Необходим посчитать площадь всех луж.

@seliverstov-maxim
Copy link
Author

seliverstov-maxim commented Jan 10, 2019

для [1,2,2,3,5,5,6] луж не будет, площадь = 0

1 2 2 3 5 5 6
x
x x x
x x x
x x x x
x x x x x x
x x x x x x x

для [1,3,1,2,3,1] площадь луж будет = 3

1 3 1 2 3 1
x - - x
x - x x
x x x x x x

для [2,3,6,5,2,3,5,2,4,7,6] площадь луж будет = 15

2 3 6 5 2 3 5 2 4 7 6
x
x - - - - - - x x
x x - - x - - x x
x x - - x - x x x
x x x - x x - x x x
x x x x x x x x x x x
x x x x x x x x x x x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment