Advertisement
Guest User

Untitled

a guest
Jul 15th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.40 KB | None | 0 0
  1. open System
  2. open FSharp.Collections
  3.  
  4. let secondsToArrive  (distance:int) (speed:int)  =
  5.    
  6.     ((float distance)/((float speed)*1000.0))*3600.0
  7. let checkGreenLight (duration:int) (arrive:float)  =
  8.     eprintfn "llegada : %f , duracion : %i" arrive duration
  9.     eprintfn "llegada entre duracion: %f"  (arrive/(float duration))
  10.     (int( arrive/(float duration)) % 2) = 0
  11. let mutable SuccesChekers = []
  12. let addToList (listan) (element) = element::listan
  13.  
  14. let speed = int(Console.In.ReadLine())
  15. let lightCount = int(Console.In.ReadLine())
  16.  
  17.  
  18.  
  19. for i in 0 .. lightCount - 1 do
  20.     let token = (Console.In.ReadLine()).Split [|' '|]
  21.     let distance = int(token.[0])
  22.     let duration = int(token.[1])
  23.     let currentSeconds = secondsToArrive distance
  24.     let currentGreen =  checkGreenLight duration
  25.     let succesCheck = currentSeconds >>  currentGreen
  26.     SuccesChekers <- addToList SuccesChekers succesCheck
  27.     ()
  28. let mutable maxSpeed =0
  29. let checkGivenSpeed speed (listOfChecks: (int->bool)list) =
  30.     List.forall(fun elem-> elem speed ) listOfChecks
  31.  
  32. let speeds= Seq.sortDescending (seq { 0 .. speed })
  33.  
  34. eprintfn " Para 60 el resultado es: %b " (checkGivenSpeed speed SuccesChekers)
  35. let result=Seq.find (fun elem-> (eprintfn "%i" elem );  checkGivenSpeed elem SuccesChekers) speeds
  36.  
  37.    
  38.  
  39. (* Write an action using printfn *)
  40. (* To debug: eprintfn "Debug message" *)
  41.  
  42. printfn  "%i" result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement