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
Post a Comment