;DRUGI ZADATAK

(define l1 '(1 1 2 2 2 3 1 1))
(define l '(1 2 4 3 3 1 8 9 14 7 34))


;(foldr (lambda (x y) 
;         (cond
;           ((null? y) (list (list x)))
;           ((< x (car (car y))) (cons (cons x (car y)) (cdr y)))
;           (else (cons (list x) y))
;           )
;         ) '() l)

;(filter (lambda (x) (> (length x) 2)) (foldr (lambda (x y) 
;         (cond
;           ((null? y) (list (list x)))
;           ((< x (car (car y))) (cons (cons x (car y)) (cdr y)))
;           (else (cons (list x) y))
;           )
;         ) '() l) )

(foldr (lambda (x y)(append x y))'()  (filter (lambda (x) (> (length x) 2)) (foldr (lambda (x y) 
         (cond
           ((null? y) (list (list x)))
           ((< x (car (car y))) (cons (cons x (car y)) (cdr y)))
           (else (cons (list x) y))
           )
         ) '() l) )
)

;PRVI ZADATAK

(define a '(4 1 2 5 6 3 4 9))
(define b '(5 6 1 2 5 8 6 3 4))


(define (slaganje p q)
  (cond
    ((null? p) 0)
    ((null? q) 0)
    ((= (car p) (car q)) (+ 1 (slaganje (cdr p)(cdr q))))
    (else (slaganje (cdr p) q)))
    )

(define (max1 p q l)
  (cond 
    ((null? q) l)
    (else (append (cons (slaganje p q) l) (max1 p (cdr q) l))
    )
  
  ))

(define (max2 p)
  (cond
    ((null? p) 0)
    (else (max (car p) (max2 (cdr p))))
    )
  
  )
  


(define (maxpodsekv p q)
  (max2 (max1 p q '()))
  )




