import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n, j, i;
while (in.hasNextInt()) {
n = in.nextInt();
int[][] S = new int[n+1][n+2];
for(i=1; i<=n; i++){
for(j=1; j<=i; j++){
S[i][j] = in.nextInt();
}
}
for(i=n-1; i>0; i--){
for(j=1; j<=i; j++){
if(S[i+1][j] > S[i+1][j+1])
S[i][j] += S[i+1][j];
else
S[i][j] += S[i+1][j+1];
}
}
System.out.println(S[1][1]);
}
}
}
--------------------------------------------------杯具的分隔线--------------------------------------------------
Memory:5360K
Time:1141MS
Code:536B
思路:简单DP,由下往上求最优。
用JAVA写的第一个DP,还为输入的EOF折弄了许久,WA了2次,- -!