Я реализовал приведенное ниже решение для проблемы БайтЛандских монет (https://www.codechef.com/problems/COINS/). Я не смог найти ни одного теста, который бы сломал его. Но Codechef выдает ошибку времени выполнения (NZE C). Кто-нибудь может указать, что может быть не так?
import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
static HashMap<Long,Long> map= new HashMap<Long,Long>();
public static void main (String[] args) throws java.lang.Exception
{
for(long i=1;i<=4;i++)
map.put((Long)i,(Long)i);
Scanner in=new Scanner(System.in);
Long n=in.nextLong();
System.out.println(calc(n));
}
public static Long calc(Long n)
{
if(map.containsKey(n))
return map.get(n);
map.put(n,Math.max(n,(calc(n/2) + calc(n/3)+calc(n/4))));
return map.get(n);
}
}