#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
 
int countDecodingDP(char *digits, int n)
{
    int NoOfWays[n+1];
 	NoOfWays[0]=1;
 	NoOfWays[1]=1;
 	
    for (int i = 1; i <= n; i++)
    {
        int q=digits[i]-48;
        int p=digits[i-1]-48;
        //to convert to digit
        
        if (q <= 26 && q > 0) NoOfWays[ i+1 ] = NoOfWays[ i ];
		if ((q + p*10) <= 26 && (q + p*10)>0 ) NoOfWays[ i+1 ] += NoOfWays[ i - 1 ];
		cout << p <<"--"<< q <<"--"<< i<<"--"<<NoOfWays[i+1]<<endl;
    }
    return NoOfWays[n+1];
}

int main()
{
    char digits[] = "1212";
    int n = strlen(digits);
    cout << "Count is " <<digits<<"="<< countDecodingDP(digits, n)<<endl;

}