백준/백준-C++

1932번: 숫자삼각형

Beabletoet 2017. 6. 10. 19:43

#include<cstdio>

int main()

{

  int tri[500][500], n, ans = 0;

  scanf("%d",&n);

  for(int i = 0; i < n; ++i)

    for(int j = 0; j <= i; ++j)

      scanf("%d",&tri[i][j]);

  if(n==1)

  {

    printf("%d",tri[0][0]);

    return 1;

  }

  for(int i = 1; i < n; ++i)

    for(int j = 0; j <= i; ++j)

      if(j == 0)

        tri[i][0] += tri[i-1][0];

      else if(j==n-1)

        tri[i][j] += tri[i-1][j-1];

      else

      {

        tri[i][j] = (tri[i-1][j-1] > tri[i-1][j]) ? tri[i][j]+tri[i-1][j-1] : tri[i][j]+tri[i-1][j];

      }

  for(int i = 0; i < n; ++i)

    ans = (tri[n-1][i] > ans) ? tri[n-1][i] : ans;

  printf("%d",ans);

}