hiho Week 5 register

Ended

Participants:445

Verdict:Accepted
Score:100 / 100
Submitted:2014-08-03 19:50:16

Lang:G++

Edit
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
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int a[111][111];
int dp[111][111];
int main() {
     int n;
     cin>>n;
     for(int i=1;i<=n;++i) {
         for(int j=1;j<=i;++j){
             scanf("%d",&a[i][j]);
         }
     }
     dp[0][0]=0;
     for(int i=1;i<=n;++i) {
         for(int j=1;j<=i;++j) {
             if(j>1&&j<i)
                 dp[i][j] = max(dp[i-1][j],dp[i-1][j-1])+a[i][j];
             else if(j==1) 
                 dp[i][j] = dp[i-1][j]+a[i][j];
                 
             else if(j==i) 
                 dp[i][j] = dp[i-1][j-1]+a[i][j];
         }
     }
     int ans = -555555;
     for(int i=1;i<=n;++i) {
         ans = max(ans,dp[n][i]);
     }
     printf("%d\n",ans);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX