fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.math.BigInteger;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. static BigInteger count(int n) {
  12. BigInteger[][] a0 = new BigInteger[n+1][n*n+1], a1 = new BigInteger[n+1][n*n+1], tm;
  13.  
  14. for(int h = 0; h <= n; h++) a0[h][0] = h%2==0? BigInteger.ONE: BigInteger.ZERO;
  15.  
  16. for(int c = 1; c <= 2*n; c++) {
  17. int minp = 0;
  18. for(int h = 0; h <= n; h++) {
  19. java.util.Arrays.fill(a1[h], BigInteger.ZERO);
  20. if(h>0) minp += c >= 2*h-c%2 ? 2*h - c%2 : c;
  21.  
  22. int maxp = Math.min(n*(c-1)+h, n*n);
  23. for(int p = minp; p <= maxp; p++) {
  24. BigInteger sum = a0[h][p-h];
  25.  
  26. if(c%2==1 && h>0)
  27. sum = sum.add(a0[h-1][p-h]);
  28. else if(c%2==0 && h<n)
  29. sum = sum.add(a0[h+1][p-h]);
  30.  
  31. a1[h][p] = sum;
  32. }
  33. }
  34. tm=a0; a0=a1; a1=tm;
  35. }
  36. BigInteger[] s = new BigInteger[n*n+1];
  37. for(int p = 0; p <= n*n; p++) {
  38. BigInteger sum = BigInteger.ZERO;
  39. for(int h = 0; h <= n; h++) sum = sum.add(a0[h][p]);
  40. s[p] = sum;
  41.  
  42. }
  43.  
  44. BigInteger ans = BigInteger.ZERO;
  45. for(int p = 0; p < n*n; p++) ans = ans.add(s[p].multiply(s[p]));
  46. return ans.shiftLeft(1).add(s[n*n].multiply(s[n*n]));
  47. }
  48.  
  49. public static void main(String[] args) {
  50. for(int n = 0;; n++) {
  51. System.out.println(n + " " + count(n));
  52. }
  53. }
  54. }
Runtime error #stdin #stdout #stderr 4.99s 380352KB
stdin
Standard input is empty
stdout
0 1
1 3
2 30
3 410
4 6148
5 96120
6 1526700
7 24425026
8 392143828
9 6306613690
10 101505099104
11 1634209596410
12 26311180850268
13 423567557239604
14 6817440328754244
15 109703307312544664
16 1764863031686159684
17 28385338557467333804
18 456426743658724223028
19 7337464027218416593362
20 117929834924476983631484
21 1895001322193765468145608
22 30444501819543264946500632
23 489020493423865977232503582
24 7853607180472007236007163868
25 126107246785297499695485857820
26 2024623142652182933002407272152
27 32500187045867333116416389454870
28 521637692279609449019710749499740
29 8371381892378083484864836706748672
30 134330243829780464001870161109329704
31 2155271732701183308609497172424348946
32 34576794759841412350153267739436754212
33 554657093961168092784731576374736805396
34 8896599189333976054536932267009814836184
35 142687320169071920807550330957395311036808
36 2288288421287935741981956614899265563724016
37 36694598337891114407977014897564633815206924
38 588384650403640032326056264157534349472878116
39 9433873537051071462707017942517875565374051988
40 151248078283127622075727525782289462520410250332
stderr
/spoj/java_run: line 9: 21667 CPU time limit exceeded /opt/$VER/bin/java -client -Xbatch -Dfile.encoding=UTF-8 -jar tested.zip