예제 #1
0
파일: vans.java 프로젝트: were/progs
 void run() {
   int N = input.nextInt();
   f = new BigInteger[max(N + 1, 5)];
   f[1] = BigInteger.ZERO;
   f[2] = BigInteger.valueOf(2);
   f[3] = BigInteger.valueOf(4);
   g = new BigInteger[max(N + 1, 5)];
   g[1] = BigInteger.valueOf(2);
   g[2] = BigInteger.valueOf(2);
   g[3] = BigInteger.valueOf(8);
   for (int i = 4; i <= N; ++i) {
     g[i] =
         f[i - 1].multiply(BigInteger.valueOf(2)).add(g[i - 1]).add(g[i - 2]).subtract(g[i - 3]);
     f[i] = f[i - 1].add(g[i - 1]);
   }
   System.out.println(f[N]);
 }