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 C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include "bits/stdc++.h"
using namespace std;
#define rep(i, n) for(int i = 0; i < n; i++)
#define REPR(i, n) for(int i = n; i >= 0; i--)
#define FOR(i, m, n) for(int i = m; i < n; i++)
#define ALL(x) (x).begin(), (x).end()
#define SZ(x) ((int)(x).size)
#define MOD 1000000007
const long long mod = 1e9+7;
typedef vector<long long> Vl;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<Vl> VVl;
typedef pair<int, int> PII;
typedef long long ll;

int main(){
    ll a,b,c=0,d=0,n=0;
    //VI a(N);
    string s,s1,s2;
    cin >> a; 
    if(a/10 < 10){
        cout << 9 << endl; 
        return 0; 
    }
    else { 
       c+=9;
    }
    if(a/100 < 10){
        c += a - 100+1;
        cout << c << endl; 
        return 0;
    }
    else { c+= 9*100; } 

    if(a/10000 < 10){
        c += a - 10000+1;
        cout << c << endl; 
        return 0;
    }
    else{ c+= 9*10000;}

     if(a/1000000 < 10){
        c += a - 1000000+1;
        cout << c << endl; 
        return 0;
    }
    else{ c+= 9*1000000;}


    cout << c << endl; 
    return 0;
}