← Back to List

1932번: 정수 삼각형 ↗

Solutions

C++14
648 B | 648 chars
#include <iostream>
using namespace std;
int N,ar[550][550];
int main()
{
	cin>>N;
	for(int y=0; y<N; y++)
	{
		for(int x=0; x<=y; x++)
		{
			cin>>ar[x][y];
		}
	}
	if(N==1) cout<<ar[0][0];
	else
	{
		ar[1][1]+=ar[0][0];
		ar[0][1]+=ar[0][0];
		for(int y=2; y<N; y++)
		{
			for(int x=0; x<=y; x++)
			{
				if(x==0)
				{
					ar[x][y]+=ar[x][y-1];
				}
				else if(x==y)
				{
					ar[x][y]+=ar[x-1][y-1];
				}
				else
				{
					if(ar[x-1][y-1]>ar[x][y-1]) ar[x][y]+=ar[x-1][y-1];
					else ar[x][y]+=ar[x][y-1];
				}
			}
		}
    int Max=0;
    for(int x=0; x<N; x++)
    {
      if(ar[x][N-1]>Max)Max=ar[x][N-1];
    }
    cout<<Max;
	}
}