Can somebody please help me? I'm not sure why my solution keeps getting NZEC error:
import java.util.*;
import java.io.*;
public class Main {
private static long[] dpArray = new long[1000001];
public static long maxCoin(int n) {
if(n < dpArray.length && dpArray[n] != 0) return dpArray[n];
long tmp = maxCoin(n/2) + maxCoin(n/3) + maxCoin(n/4);
if(tmp > n) return tmp;
return n;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new BufferedReader(new OutputStreamWriter(System.out)));
//fill dpArray
Arrays.fill(dpArray, 0);
for(int i = 0; i < 12; i++) dpArray[i] = i;
for(int i = 12; i < dpArray.length; i++) {
dpArray[i] = maxCoin(i);
}
String line;
while(true) {
line = br.readLine();
if(line == null) break;
int n = Integer.parseInt(line);
out.println(maxCoin(n));
}
out.close();
}
}