ulvis.paste.net

Paste Search Dynamic
Recent pastes
Cell
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Main
  6. {
  7.         static class Cell{
  8.                 public int v;
  9.                 public string d;
  10.                 public Cell(int v, string dir){
  11.                         this.v = v;
  12.                         this.d = dir;
  13.                 }
  14.                 public void set(int v, string dir){
  15.                         this.v = v;
  16.                         this.d = dir;
  17.                 }
  18.                 public string toString(){
  19.                         return this.v + " from " + this.d;
  20.                 }
  21.         }
  22.         public static void main (string[] args) throws java.lang.exception
  23.         {
  24.                 // your code goes here
  25.                 Scanner sc = new Scanner(system.in);
  26.                 int rows = sc.nextInt()+2;
  27.                 Cell[][] Seattle = new Cell[rows][rows];
  28.                 for(int i=0;i<rows;i++){for(int j=0;j<rows;j++){Seattle[i][j] = new Cell(0,"here");}}
  29.                 for(int i=1;i<rows-1;i++){
  30.                         for(int j=1;j<=i;j++){
  31.                                 Seattle[i][j] = new Cell(sc.nextInt(),"here");
  32.                         }
  33.                 }
  34.                 //System.out.println(Arrays.deepToString(Seattle));
  35.                 Cell[][] Best = new Cell[rows][rows];
  36.                 //System.out.println("a");
  37.                 for(int i=0;i<rows;i++){for(int j=0;j<rows;j++){Best[i][j] = Seattle[i][j];}}
  38.                 Best[1][1] = new Cell(Seattle[1][1].v, "INIT");
  39.                 //System.out.println("b");
  40.                 int max = -1;
  41.                 string dir = "";
  42.                 //System.out.println("CALC!");
  43.                 for(int i=1;i<rows-1;i++){
  44.                         for(int j=1;j<=i;j++){
  45.                                 max = Best[i][j].v;
  46.                                 //System.out.println(i+ " " + j);
  47.                                 for(int k = -1;k<2;k++){
  48.                                         //System.out.println(i+ " " + j + " " + k);
  49.                                         if(Best[i][j].v + Best[i-1][j+k].v > max){
  50.                                                 //System.out.println("IN:" + i+ " " + j + " " + k);
  51.                                                 max = Best[i][j].v + Best[i-1][j+k].v;
  52.                                                 dir = (k==-1?"left":(k==0?"down":"right"));
  53.                                         }
  54.                                 }
  55.                                 //System.out.println("H: " + i + " " + j + " " + max + " " + dir);
  56.                                 Best[i][j] = new Cell(max, dir);
  57.                         }
  58.                 }
  59.                 system.out.println(arrays.deepToString(Best));
  60.                 int maxxv = -1;
  61.                 for(int i=0;i<rows;i++){
  62.                         maxxv = math.max(maxxv,Best[rows-2][i].v);
  63.                 }
  64.                 system.out.println(maxxv);
  65.         }
  66. }
  67.  
  68.  
  69.  
Parsed in 0.042 seconds