// 11届蓝桥C组数字三角形.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//思想:递归
#include <iostream>
using namespace std;//用了这句代码变量不要取名为max或min否则会提示变量不明确
int ma = 0;
int a[101][101];
void judge(int left, int right, int y, int x,int N,int sum)//y为层数,x是该层的第几个数字,sum是数字累加是和
{
if (y != N)
{
sum+= a[y][x];
judge(left + 1, right, y + 1, x, N,sum);
judge(left, right + 1, y + 1, x + 1, N,sum);
}
else//递归边界
{
sum += a[y][x];
if ((left - right) == 1 || (left - right) == -1||left==right)
if (sum > ma)
ma = sum;
}
}
int main()
{
int i, j, k,N, l, g;
cin >> N;
for(i=1;i<=N;i++)
for (j = 1; j <= i; j++)
{
cin >> k;
a[i][j] = k;
}
judge(0, 0, 1,1,N,0);
cout << ma;//答案27
}
/*
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
*/