ACODE - Alphacode - SPOJ Solution C++

  Problem Link : ACODE 


👉 Hint : Simple 1D DP

 


✅ C++ Solution :

 
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	while(1)
	{
		string s;
		getline(cin,s);
		if(s=="0")
			break;
		int arr[s.length()+1];
		memset(arr,0,sizeof(arr));
		arr[0]=1;
		for(int i=1;i<s.length();i++)
		{
			if(s[i]!='0')
				arr[i]=arr[i-1];
			if(s[i-1]=='1'||(s[i-1]=='2' && s[i]<='6'))
			{
				if(i==1)
					arr[i]+=1;
				else	
				arr[i]+=arr[i-2];
			}
			
		}
		cout<<arr[s.length()-1]<<endl;
	}
	return 0;
 
}