why?
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <climits>
using namespace std;
int n,a[1001][1001],d[1001][1001];
int main() {
scanf("%d",&n);
for (int i = 0;i < n;i ++) {
for (int j = 0;j <= i;j ++) {
scanf("%d",&a[i][j]);
if (i == 0) {
d[0][0] = a[0][0];
} else if (j == 0) {
d[i][0] = a[i - 1][0] + a[i][j];
} else {
d[i][j] = max(d[i - 1][j],d[i - 1][j - 1]) + a[i][j];
}
}
}
sort (d[n - 1],d[n - 1] + n,greater<int>());
printf("%d",d[n - 1][0]);
return 0;
}