bored?
by math_explorer, Feb 21, 2011, 5:28 AM
what?
AGC II: Congrats, you found the treasure! PM me the word "grindstone".
(defun ******* (old-li)
(block bpb
(let ((len (1- (length old-li)))
(li (copy-list old-li)))
(let* ((turn
(do ((i 0 (1+ i))
(tpr nil))
((or tpr (>= i len)) tpr)
(when (> (elt li i) (elt li (1+ i)))
(setf tpr (1+ i)))))
(turn-value
(if turn
(elt li turn)
(return-from bpb nil)))
(incr-seq (subseq li 0 turn))
(rest-seq (subseq li turn))
(nrev-seq (nconc (nreverse incr-seq) rest-seq)))
(let* ((min-index
(do ((i 0 (1+ i))
(min-found 0)
(min-index-ret nil))
((>= i turn) min-index-ret)
(let ((cur (elt nrev-seq i)))
(when
(and
(> cur turn-value)
(or (< cur min-found)
(not min-index-ret)))
(setf min-found cur)
(setf min-index-ret i))))))
(setf (elt nrev-seq turn) (elt nrev-seq min-index))
(setf (elt nrev-seq min-index) turn-value)
nrev-seq)))))
AGC II: Congrats, you found the treasure! PM me the word "grindstone".
This post has been edited 2 times. Last edited by math_explorer, Jan 26, 2013, 4:30 AM