1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <cstdio> #include <algorithm> #include <iostream>
using namespace std;
int a[350][350]; int d[350][350]; int N;
int main() { scanf("%d", &N); int i, j; for(i=0;i<N;++i) { for(j=0;j<i+1;++j) { scanf("%d", &a[i][j]); } }
d[0][0] = a[0][0]; for(i=0;i<N-1;++i) { for(j=0;j<=i;++j) { d[i+1][j+1] = max(d[i+1][j+1], d[i][j] + a[i+1][j+1]); d[i+1][j] = max(d[i+1][j], d[i][j] + a[i+1][j]); } }
cout << *max_element(d[N-1], d[N-1]+N) << endl; return 0; }
|