DYZIO - Dyzio - SPOJ Solution C++

  Problem Link : DYZIO 


👉 Hint : Recursion

 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

int ans=-1;
unordered_map<int,int> mp;
void Recur(string s,int depth,int &cuts,int &i)
{

    if(i==s.length())
        return;
	if(mp.find(depth)==mp.end())
		mp[depth]=cuts;
	ans=max(ans,depth);
	if(s[i]=='1')
	{
		cuts++;
		i++;
		Recur(s,depth+1,cuts,i);
		Recur(s,depth+1,cuts,i);
	}
	else
	    i++;

}

int main()
{
	int n;
	string s;
	while(scanf("%d",&n)!=EOF)
	{
		mp.clear();
        int cuts=0,i=0;
        ans=-1;
		cin>>s;
		Recur(s,0,cuts,i);
		cout<<mp[ans]<<endl;
	}
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!