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 Go (1.6) (judge verdict: Wrong Answer)

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	// Get a number from stdio and convert it
	sc.Split(bufio.ScanWords)
	sc.Scan()

	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}

	result := 0
	for i > 0 {
		if i/100000 != 0 {
			i = i - 1
		} else if i/10000 != 0 {
			if i == 10000 {
				result++
				i--
				continue
			}
			result += ((i/10000)-1)*10000 + (i % 10000) + 1 //just 10000
			i = i % 10000
		} else if i/1000 != 0 {
			if i == 1000 {
				i--
				continue
			}
			i = i % 1000
		} else if i/100 != 0 {
			if i == 100 {
				result++
				i--
				continue
			}
			result += ((i/100)-1)*100 + (i % 100) + 1 //just 100
			i = i % 100
		} else if i/10 != 0 {
			result += 9
			break
		} else {
			result += i
			break
		}
	}
	fmt.Println(result)
}