Codeforces Round菗308(Div.2)Vanya and Book s

2476 ワード

テーマリンク:http://codeforces.com/contest/552/problem/B いくつかの数字があることを求めます。eg:13:1 2 3 4 4 4 4 7 9 1 0 1 1 2 3全部で17の数字です。
#include <iostream>

using namespace std;
long long a[12]={0,9,99,999,9999,99999,999999,9999999,99999999,999999999,9999999999};
int main()
{
    long long m;
    while(cin>>m)
    {
        long long  k=1,sum=0;   long long 
        if(m<10)
        {
            cout<<m<<endl;
            continue;
        }
        else
        {
            for(int i=1; i<=10; i++)
            {
                k*=10;
                if(m<k)
                {
                    sum+=(m-k/10+1)*i;
                    break;
                }
                else
                    sum+=(a[i]-a[i-1])*i;
            }
            cout<<sum<<endl;
        }
    }
    return 0;
}