//2011.07.01
//Daun.
//POJ 1163 The Triangle
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int result = 0;
void leftSum(int [][100], int , int ,int); //왼쪽 대각선 아래를 더하는 경우
void rightSum(int [][100], int , int , int); //오른쪽 대각선 아래를 더하는 경우
int main()
{
int line=1;
int arr[100][100]= {0};
memset(arr,-1,sizeof(arr));
cin >> line;
//줄수를 입력받음
for(int a = 0 ; a < line ; a++)
for(int b = 0 ; b <= a; b++)
cin>>arr[a][b];
//숫자를 입력 받음
rightSum(arr,0,0,0);
leftSum(arr,0,0,0);
cout << result;
system("pause");
return 0;
}
void rightSum(int arr[][100], int a, int b ,int sum)
{
if(arr[a][b] == -1)
{
if( sum > result)
result = sum;
}
else
{
sum+=arr[a][b];
rightSum(arr,a+1,b+1,sum);
leftSum(arr,a+1,b,sum);
}
}
void leftSum(int arr[][100], int a , int b,int sum)
{
if(arr[a][b] == -1)
{
if(sum > result)
result = sum;
}
else
{
sum+=arr[a][b];
leftSum(arr,a+1,b ,sum);
rightSum(arr,a+1,b+1,sum);
}
}
'Code > Algorism' 카테고리의 다른 글
[ALGORISM]poj 1298 (0) | 2011.09.03 |
---|---|
[ALGORISM]poj 2853 (0) | 2011.09.03 |
[ALGORISM]poj 1077 (0) | 2011.09.03 |
[ALGORISM]poj 1003 (0) | 2011.09.03 |
[ALGORISM] poj 3085 (0) | 2011.09.03 |