9 solutions
-
0
#include<iostream> #include<cmath> #include<algorithm> #include<queue> using namespace std; using ll = long long; const int N = 1e3+10; ll a[N][N],sum; int main() { ll sum = 0; int r;cin>>r; for(int i = 1;i <= r;i++) { for(int j = 1;j <= i;j++) { cin>>a[i][j]; } } for(int i = 2;i <= r;i++) { for(int j = 1;j <= i;j++) { //一定要注意考虑边界值 if(j == 1) { a[i][j] += a[i-1][j]; } else if(j == i) { a[i][j] += a[i-1][j-1]; } else { a[i][j] += max(a[i-1][j],a[i-1][j-1]); } } } for(int j = 1; j <= r;j++) { sum = max(sum,a[r][j]); } cout<<sum<<"\n"; return 0; }
Information
- ID
- 87
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 247
- Accepted
- 98
- Uploaded By