fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class GFG {
  6. public static void main (String[] args) {
  7. //code
  8. Scanner in = new Scanner(System.in);
  9. int t = in.nextInt();
  10. for(int i=0;i<t;i++){
  11. int n = in.nextInt();
  12. int a[][]= new int[n][n];
  13. for(int j=0;j<n;j++)
  14. for(int k=0;k<n;k++)
  15. a[j][k]=in.nextInt();
  16.  
  17. int h = Mat(a,n);
  18. System.out.println(h);
  19. }
  20. }
  21. public static int Mat(int [][] a, int n){
  22. /*or(int i=0;i<n;i++){
  23. for(int j=0;j<n;j++){
  24. System.out.print(a[i][j]+" ");
  25. }
  26. System.out.println();
  27. }
  28. System.out.println();*/
  29. for(int i=1;i<n;i++){
  30. for(int j=0;j<n;j++){
  31. if(j==0){
  32. a[i][j] = Max(a[i][j]+a[i-1][j],a[i][j]+a[i-1][j+1]);
  33. }
  34. else if(j==n-1){
  35. a[i][j]=Max(a[i][j]+a[i-1][j],a[i][j]+a[i-1][j-1]);
  36. }
  37. else a[i][j] = Max(a[i][j]+a[i-1][j],a[i][j]+a[i-1][j+1],a[i][j]+a[i-1][j-1]);
  38. }
  39. }
  40. for(int i=0;i<n;i++){
  41. for(int j=0;j<n;j++)
  42. System.out.print(a[i][j]+" ");
  43. System.out.println();
  44. }
  45. int max=0;
  46. for(int i=0;i<n;i++){
  47. if(max<a[n-1][i]) max=a[n-1][i];
  48. }
  49. /*for(int i=0;i<n;i++){
  50. for(int j=0;j<n;j++){
  51. System.out.print(a[i][j]+" ");
  52. }
  53. System.out.println();
  54. }*/
  55.  
  56. return max;
  57. }
  58. public static int Max(int a,int b){
  59. return a>b?a:b;
  60. }
  61. public static int Max(int a, int b, int c){
  62. if(a>b && a>c) return a;
  63. else if(b>a && b>c) return b;
  64. else return c;
  65. }
  66. }
Success #stdin #stdout 0.1s 2841600KB
stdin
1
3
1 2 3 4 5 6 7 8 9
stdout
1 2 3 
6 8 9 
15 17 18 
18