include<bits stdc++.h="">
using namespace std; int limit = 10000000; int dp[ 10000000 ] = {0}; int maximum = 0;
int solve( int n ) { if( dp[n] != 0) return dp[n]; if( n < 12) return dp[ n ] = n; else return dp[ n ] = max(n, solve( n/2 ) + solve( n/3 ) + solve( n/4 ) ); } int main() { int n; { cin>>n; solve( n ); for(int i = 1; i <= limit; i++) { if( dp[i] > maximum ) maximum = dp[i]; } cout<<endl<<maximum<<endl; } return 0; }
http://www.codechef.com/viewsolution/6574636
Its is showing wrong answer, please help.