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 Python (3.4.3) (judge verdict: Accepted)

#
# Written by NoKnowledgeGG @YlePhan
# ('ω')
#
#import math
#mod = 10**9+7
#import itertools
#import fractions
#import numpy as np
#mod = 10**4 + 7
"""def kiri(n,m):
  r_ = n / m
  if (r_ - (n // m)) > 0:
    return (n//m) + 1
  else:
    return (n//m)"""
  
def main():
  N = input()
  ans = 0
  if len(N) == 6:
    ans += 10**5 - 10**4
    ans += 10**3 - 10**2
    ans += 10**1 - 10**0
  elif len(N) == 5:
    ans += int(N) - 10**4 + 1
    ans += 10**3 - 10**2
    ans += 10**1 - 10**0
  elif len(N) == 4:
    ans += 10**3 - 10**2
    ans += 10**1 - 10**0
  elif len(N) == 3:
    ans += int(N) - 10**2 + 1
    ans += 10**1 - 10**0
  elif len(N) == 2:
    ans += 10**1 - 10**0
  elif len(N) == 1:
    ans += int(N)
  print(ans)
if __name__ == '__main__':
  main()