2011. 9. 3. 14:46


//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
Posted by I_co