Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,26 @@
|
|||
#lang racket
|
||||
;;; reads a licence file on standard input
|
||||
;;; returns max licences used and list of times this occurred
|
||||
(define (count-licences)
|
||||
(let inner ((ln (read-line)) (in-use 0) (max-in-use 0) (times-list null))
|
||||
(if (eof-object? ln)
|
||||
(values max-in-use (reverse times-list))
|
||||
(let ((mtch (regexp-match #px"License (IN |OUT) @ (.*) for job.*" ln)))
|
||||
(cond
|
||||
[(string=? "OUT" (second mtch))
|
||||
(let ((in-use+1 (add1 in-use)))
|
||||
(cond
|
||||
[(> in-use+1 max-in-use)
|
||||
(inner (read-line) in-use+1 in-use+1 (list (third mtch)))]
|
||||
[(= in-use+1 max-in-use)
|
||||
(inner (read-line) in-use+1 max-in-use (cons (third mtch) times-list))]
|
||||
[else (inner (read-line) in-use+1 max-in-use times-list)]))]
|
||||
[(string=? "IN " (second mtch))
|
||||
(inner (read-line) (sub1 in-use) max-in-use times-list)]
|
||||
[else (inner (read-line) in-use max-in-use times-list)])))))
|
||||
|
||||
(define-values (max-used max-used-when)
|
||||
(with-input-from-file "mlijobs.txt" count-licences))
|
||||
(printf "Maximum licences in simultaneously used is ~a at the following times:~%"
|
||||
max-used)
|
||||
(for-each displayln max-used-when)
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#lang racket
|
||||
;;; reads a licence file on standard input
|
||||
;;; returns max licences used and list of times this occurred
|
||||
(define (count-licences)
|
||||
(define (sub-count-licences)
|
||||
(for/fold ((in-use 0) (max-in-use 0) (times-list null))
|
||||
((ln (in-lines)))
|
||||
(let ((mtch (regexp-match #px"License (IN |OUT) @ (.*) for job.*" ln)))
|
||||
(cond
|
||||
[(string=? "OUT" (second mtch))
|
||||
(let ((in-use+1 (add1 in-use)))
|
||||
(cond
|
||||
[(> in-use+1 max-in-use) (values in-use+1 in-use+1 (list (third mtch)))]
|
||||
[(= in-use+1 max-in-use) (values in-use+1 max-in-use (cons (third mtch) times-list))]
|
||||
[else (values in-use+1 max-in-use times-list)]))]
|
||||
[(string=? "IN " (second mtch)) (values (sub1 in-use) max-in-use times-list)]
|
||||
[else (values in-use max-in-use times-list)]))))
|
||||
(let-values (((in-use max-in-use times-list) (sub-count-licences)))
|
||||
(values max-in-use (reverse times-list))))
|
||||
|
||||
(define-values (max-used max-used-when) (with-input-from-file "mlijobs.txt" count-licences))
|
||||
(printf "Maximum licences in simultaneously used is ~a at the following times:~%" max-used)
|
||||
(for-each displayln max-used-when)
|
||||
Loading…
Add table
Add a link
Reference in a new issue