Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open System
- open System.IO
- open System.Diagnostics
- let path = @"C:\Users\juegest\"
- let parse s = ()
- let calc x coef =
- let res, _, _ =
- coef
- |> Array.fold
- (fun (r, d, pow) k ->
- let npow = pow * x
- (r + (k * npow) / d, d + 1., npow) ) (0., 1., 1.)
- res
- let awaitTask = Async.AwaitIAsyncResult >> Async.Ignore
- let processAllFiles n =
- seq { for i in 1 .. n -> async {
- let in_filename = path + @"inp" + string i + ".txt"
- let out_filename = path + @"out" + string i + ".txt"
- use fin = File.OpenRead(in_filename)
- use sr = new StreamReader(fin)
- let! s = sr.ReadLineAsync() |> Async.AwaitTask
- let coef =
- s.Split([| ' ' |], StringSplitOptions.RemoveEmptyEntries)
- |> Array.map float
- |> Array.rev
- let! s = sr.ReadLineAsync() |> Async.AwaitTask
- let lims = s.Split([| ' ' |], StringSplitOptions.RemoveEmptyEntries) |> Array.map float
- let a, b = lims.[0], lims.[1]
- let result = (calc a coef - calc b coef) |> string
- use fout = File.OpenWrite(out_filename)
- use sw = new StreamWriter(fout)
- do! sw.WriteLineAsync(result) |> awaitTask
- }
- }
- |> Async.Parallel
- |> Async.RunSynchronously
- |> ignore
- [<EntryPoint>]
- let main argv =
- let sw = new Stopwatch()
- sw.Start()
- processAllFiles 3
- sw.Stop()
- printfn "Done (time: %f)" (float sw.ElapsedMilliseconds / 1000.)
- System.Console.ReadKey() |> ignore
- 0 // возвращение целочисленного кода выхода
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement