Problem:
Score : 200 points

Problem Statement

Given is an integer N. Find the number of positive integers less than or equal to N that have an odd number of digits (in base ten without leading zeros).

Constraints

1 \leq N \leq 10^5

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of positive integers less than or equal to N that have an odd number of digits.

Sample Input 1

11

Sample Output 1

9

Among the positive integers less than or equal to 11, nine integers have an odd number of digits: 1, 2, \ldots, 9.

Sample Input 2

136

Sample Output 2

46

In addition to 1, 2, \ldots, 9, another 37 integers also have an odd number of digits: 100, 101, \ldots, 136.

Sample Input 3

100000

Sample Output 3

90909

Solution in Common Lisp (SBCL 1.1.14) (judge verdict: Accepted)


(defun f(s)
  (let ((l (length s)))
	(cond ((= l 1) (parse-integer s))
		  ((= l 2) 9)
		  ((= l 3) (+ 9 (- (parse-integer s) 99)))
		  ((= l 4) (+ 9 (- 999 99)))
		  ((= l 5) (+ 9 (- 999 99) (- (parse-integer s) 9999)))
		  (t (+ 9 (- 999 99) (- 99999 9999)))
		  )))

(defun splitat (c line)
  (labels ((rec (line acc)
				(let ((pos (position-if (lambda(cc) (char= c cc)) line)))
				  (if pos
					  (rec (subseq line (1+ pos)) (cons (subseq line 0 pos) acc))
					(nreverse (cons line acc))))))
	(rec line nil)))
(defun g()
  (let* ((line (read-line nil nil)))
  (format t "~A~%" (f line))))
(g)