蓝桥杯(数字三角形)
作者:
husheng
,
2022-04-06 22:05:37
,
所有人可见
,
阅读 178
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[][] arr=new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<=i;j++) {
arr[i][j]=input.nextInt();
}
}
int[][] dp=new int[n][n];
dp[0][0]=arr[0][0];
for(int i=1;i<n;i++) {
dp[i][0]=dp[i-1][0]+arr[i][0];
dp[i][i]=dp[i-1][i-1]+arr[i][i];
}
for(int i=1;i<n;i++) {
for(int j=1;j<=i;j++) {
dp[i][j]=Math.max(dp[i-1][j], dp[i-1][j-1])+arr[i][j];
}
}
if(n%2==1) {
System.out.println(dp[n-1][(n-1)/2]);
}else {
System.out.println(Math.max(dp[n-1][(n-1)/2], dp[n-1][(n-1)/2+1]));
}
}
}