1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>

using namespace std;

int main()
{
    string x;
    cin>> x;
    short ascii=48;
    int ileCyfr=x.length();
    int liczba[ileCyfr];

    for(int i=0;i<ileCyfr;i++)
    {
        liczba[i]=((int)x[i]-ascii);
    }

    long long mozliwosci=0;
    short razy=1;
    short pary[ileCyfr-1];
    for(int i=0;i<ileCyfr;i++)
    {
        pary[i]=0;
    }

    for(unsigned int i=0;i<ileCyfr;i++)
    {
            razy*=liczba[i]+1;
        if(liczba[i]==1&&i<=(ileCyfr)-2)
        {
            pary[i]=1;
            for(unsigned int j=0;j<ileCyfr;j++)
            {
                    if(j==i)pary[i]*=1;
                    else if(j==(i+1))pary[i]*=(9-liczba[i+1]);
                    else pary[i]*=(liczba[j]+1);
            }
        }
    }
    mozliwosci+=razy;
    for(int i=0;i<ileCyfr;i++)
    {
        mozliwosci+=pary[i];
    }

    cout<< mozliwosci ;
    return 0;
}