Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Equilibrium-index/Haskell/equilibrium-index-1.hs
Normal file
10
Task/Equilibrium-index/Haskell/equilibrium-index-1.hs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import System.Random (randomRIO)
|
||||
import Data.List (findIndices, takeWhile)
|
||||
import Control.Monad (replicateM)
|
||||
import Control.Arrow ((&&&))
|
||||
|
||||
equilibr xs =
|
||||
findIndices (\(a, b) -> sum a == sum b) . takeWhile (not . null . snd) $
|
||||
flip ((&&&) <$> take <*> (drop . pred)) xs <$> [1 ..]
|
||||
|
||||
langeSliert = replicateM 2000 (randomRIO (-15, 15) :: IO Int) >>= print . equilibr
|
||||
2
Task/Equilibrium-index/Haskell/equilibrium-index-2.hs
Normal file
2
Task/Equilibrium-index/Haskell/equilibrium-index-2.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*Main> equilibr [-7, 1, 5, 2, -4, 3, 0]
|
||||
[3,6]
|
||||
2
Task/Equilibrium-index/Haskell/equilibrium-index-3.hs
Normal file
2
Task/Equilibrium-index/Haskell/equilibrium-index-3.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*Main> langeSliert
|
||||
[231,245,259,265,382,1480,1611,1612]
|
||||
21
Task/Equilibrium-index/Haskell/equilibrium-index-4.hs
Normal file
21
Task/Equilibrium-index/Haskell/equilibrium-index-4.hs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
equilibriumIndices :: [Int] -> [Int]
|
||||
equilibriumIndices xs =
|
||||
zip3
|
||||
(scanl1 (+) xs) -- Sums from the left
|
||||
(scanr1 (+) xs) -- Sums from the right
|
||||
[0 ..] -- Indices
|
||||
>>= (\(x, y, i) -> [i | x == y])
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
mapM_
|
||||
print
|
||||
$ equilibriumIndices
|
||||
<$> [ [-7, 1, 5, 2, -4, 3, 0],
|
||||
[2, 4, 6],
|
||||
[2, 9, 2],
|
||||
[1, -1, 1, -1, 1, -1, 1],
|
||||
[1],
|
||||
[]
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue