/*
* @author MUHAMMAD AZRI BIN JASNI @ ABDUL RANI
* @version 1 APRIL 2013
*
* reference: http://www.mathblog.dk/project-euler-18/
* http://www.mkyong.com/java/how-to-get-the-total-number-of-lines-of-a-file-in-java/
*/
import java.io.*;//File & BufferedReader
import java.util.*;//Scanner
public class solution18_manualinput
{
public static void main(String [] args) throws IOException
{
//time start
long begin = System.currentTimeMillis();
//read text file as data input
//File inFile = new File("testinput.txt");
//File inFile = new File("input.txt");
//calc Lines number[MAX]
//int MAX = 4;
int MAX=15;
//int MAX = 0;
/*BufferedReader br = new BufferedReader(new FileReader(inFile));
while (br.readLine() != null) {
MAX++;
}
br.close();*/
//set up array
//Scanner sc = new Scanner(inFile);
//int [][] array = new int[MAX][MAX];
//chng into arrays of data triangle
/*for (int i=0; i<MAX; i++)
{
for(int j=0; j<MAX; j++)
{
array[i][j]= Integer.parseInt(sc.next());
}
}*/
/*int [][] array = new int[][]{
{3,0,0,0},
{7,4,0,0},
{2,4,6,0},
{8,5,9,3}
};
*/
int [][] array = new int[][]{
{75,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{95,64,0,0,0,0,0,0,0,0,0,0,0,0,0},
{17,47,82,0,0,0,0,0,0,0,0,0,0,0,0},
{18,35,87,10,0,0,0,0,0,0,0,0,0,0,0},
{20,04,82,47,65,0,0,0,0,0,0,0,0,0,0},
{19,01,23,75,03,34,0,0,0,0,0,0,0,0,0},
{88,02,77,73,07,63,67,0,0,0,0,0,0,0,0},
{99,65,04,28,06,16,70,92,0,0,0,0,0,0,0},
{41,41,26,56,83,40,80,70,33,0,0,0,0,0,0},
{41,48,72,33,47,32,37,16,94,29,0,0,0,0,0},
{53,71,44,65,25,43,91,52,97,51,14,0,0,0,0},
{70,11,33,28,77,73,17,78,39,68,17,57,0,0,0},
{91,71,52,38,17,14,91,43,58,50,27,29,48,0,0},
{63,66,04,68,89,53,67,30,73,16,69,87,40,31,0},
{04,62,98,27,23,9,70,98,73,93,38,53,60,04,23},
};
//display array
/*for (int i=0; i<MAX; i++)
{
for(int j=0; j<MAX; j++)
{
System.out.print(array[i][j]+" ");
}
System.out.println();
}*/
//perform the triangle max thingy
for (int i=MAX-2; i>=0; i--)
{
for(int j=0; j<=i; j++)
{
array[i][j]+= Math.max(array[i+1][j] , array[i+1][j+1]);
}
//display array
/*for (int k=0; k<MAX; k++)
{
for(int l=0; l<MAX; l++)
{
System.out.print(array[k][l]+" ");
}
System.out.println();
}*/
}
//display final triangle as answer.
System.out.println(array[0][0]);
//time end
long end = System.currentTimeMillis();
System.out.println("Time:" + (end-begin)+" ms");
}
}