Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; read input
- (defun read-input(p)
- (cond
- ((null p) nil)
- (T (cons p (read-input (read nil nil))))
- )
- )
- (defun readinput(i)
- (cdr (read-input 1))
- )
- ;--don't change above this line
- ; write your function here
- ;http://pastebin.com/5SmCzPnh drugo resenie so pomosna lista
- (defun izdvoj(lista start end)
- (brisiNIL (pomosna lista start end 1))
- )
- (defun atomi(lista)
- (cond
- ((null lista) nil)
- ((listp (car lista)) (append (atomi (car lista)) (atomi (cdr lista))))
- (T (cons (car lista) (atomi (cdr lista))))
- )
- )
- (defun broi (lista)
- (cond
- ((null lista) 0)
- ((listp (car lista)) (+ (broi (car lista)) (broi (cdr lista))))
- (T (+ 1 (broi (cdr lista))))
- )
- )
- (defun pomosna (lista start end mom)
- (cond
- ((null lista) nil)
- ((listp (car lista))
- (cons (pomosna (car lista) start end mom) (pomosna (cdr lista) start end (+ mom (broi (car lista))))))
- ((and (atom (car lista)) (>= mom start) (<= mom end))
- (cons (car lista) (pomosna (cdr lista) start end (+ mom 1))))
- (T (pomosna (cdr lista) start end (+ 1 mom)))
- )
- )
- (defun dolzina (lista)
- (cond
- ((null lista) 0)
- ((listp (car lista)) (+ (dolzina (car lista)) (dolzina (cdr lista))))
- (T (+ 1 (dolzina (cdr lista))))
- )
- )
- (defun brisiNIL (lista)
- (cond
- ((null lista) nil)
- ((and (listp (car lista)) (eq 0 (dolzina (car lista))))
- (brisiNIL (cdr lista)))
- ((listp (car lista)) (cons (brisiNIL (car lista)) (brisiNIL (cdr lista))))
- (T (cons (car lista) (brisiNIL (cdr lista))))
- )
- )
- ;--don't change below this line
- (setq x (readinput nil))
- (setq l (car x))
- (setq start (cadr x))
- (setq end (caddr x))
- (print (izdvoj l start end))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement