A. Dreamoon and Stairs : minimum steps to reach : recursion solution.



http://codeforces.com/contest/476/problem/A


#include<bits/stdc++.h>

using namespace std;
int dp[10001][5055];

int  fun(int cu,int n,int m,int st)
{

  if(st%m==0 && cu==n)
  {
    //  cout<<st<<endl;
      return st;
  }


  if(cu>n || st>n || st>5050 )
   return 999999;
int &ret=dp[cu][st];
if(ret)
    return ret;
 int k1=fun(cu+1,n,m,st+1);

 int k2=fun(cu+2,n,m,st+1);
 return ret=min(k1,k2);

}




int main()
{
 int n,m,i,j,k,l;
 cin>>n>>m;

 //if(n>m*2)
   // cout<<-1<<endl;

 k=fun(0,n,m,0);

  if(k==999999)
    cout<<-1<<endl;
  else
    cout<<k<<endl;

return 0;
}

Comments

Popular posts from this blog

Getting Started With MEAN App Development with AngularJs , ExpressJs , NodeJs and MongoDB.

B. Dreamoon and WiFi :calculate no. of ways : recursive solution (branch and bound )