All pastes #823769 Raw Edit

spoj

public text v1 · immutable
·published 2007-12-19 15:58 UTC
rendered paste body
#include<iostream>
using namespace std;

long long int ans;
long long int memo[1000000];

long long int maxdlr(long long int no)
{
	if(no<=1000000)
		if(memo[no-1]!=-1)
			return memo[no-1];
	if(no>=12)
	{
		ans=maxdlr(no/2)+maxdlr(no/3)+maxdlr(no/4);
		if(ans>no)
		{
			if(no<=1000000)
				memo[no-1]=ans;
			return ans;
		}
	}
	if(no<=1000000)
		memo[no-1]=no;
	return no;
}

int main()
{
	long long int no,res;
	int i;
	for(i=0;i<1000000;i++)
		memo[i]=-1;
	while(1)
	{
		cin>>no;
		res=maxdlr(no);
		cout<<res<<endl;
	}
	return 0;
}