Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. ; read input
  2.  
  3. (defun read-input(p)
  4. (cond
  5. ((null p) nil)
  6. (T (cons p (read-input (read nil nil))))
  7. )
  8. )
  9.  
  10. (defun readinput(i)
  11. (cdr (read-input 1))
  12. )
  13. ;--don't change above this line
  14.  
  15.  
  16. ; write your function here
  17.  
  18. ;dolzina na lista so podlisti
  19. (defun dolzina(lista)
  20. (cond
  21. ((null lista) 0)
  22. ((listp(car lista))(+ (dolzina (cdr lista))(dolzina (car lista))))
  23. (T(+ (dolzina (cdr lista)) 1))
  24. )
  25. )
  26. (defun transformiraj(lista)
  27. (pom 1 lista 0 (izramni lista))
  28. )
  29. ;kolku isti elementi ima vo edna lista
  30. (defun kolku(lista num br)
  31. (cond
  32. ((null lista) br)
  33. ((eq (car lista) num) (kolku (cdr lista) num (+ 1 br)))
  34. (T(kolku (cdr lista) num br))
  35. )
  36. )
  37. ;dali e paren broj na pojavuvanja na nekoj broj
  38. (defun paren(lista num)
  39. (cond
  40. ((eq (mod (kolku lista num 0) 2) 0) 1)
  41. (T 0)
  42. )
  43. )
  44.  
  45. ;mi izdvojuva niza do opredelen index
  46. (defun izdvoj(lista br n mem)
  47. (cond
  48. ((eq n br) mem)
  49. (T (izdvoj (cdr lista) (+ 1 br) n (append mem (list (car lista)))))
  50. )
  51. )
  52. ;ja izramnuva listata
  53. (defun izramni(lista)
  54. (cond
  55. ((null lista) NIL)
  56. ((listp (car lista)) (append (izramni(car lista)) (izramni (cdr lista))))
  57. (T (append (list (car lista)) (izramni (cdr lista))))
  58. )
  59. )
  60.  
  61. ;glavnata funkcija
  62. (defun pom(ind lista br iz)
  63.  
  64. (cond
  65. ((null lista) NIL)
  66. ((listp (car lista)) (cons (pom ind (car lista) (+ 1 br) iz) (pom (+(dolzina (car lista)) ind) (cdr lista) br iz)))
  67. ((and (eq (paren (izdvoj iz 0 ind '()) (car lista)) 1) (eq(mod br 2)1)) (pom (+ 1 ind)(cdr lista) br iz))
  68. (T (cons (car lista) (pom (+ 1 ind) (cdr lista) br iz)))
  69. )
  70.  
  71. )
  72.  
  73.  
  74.  
  75. ;--don't change below this line
  76. (print (transformiraj (readinput nil)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement