The question is

Let's consider a triangle of numbers in which a number appears in the first line, two numbers appear in the second line, three in the third line, etc. Develop a program which will compute the largest of the sums of numbers that appear on the paths starting from the top towards the base, so that
* on each path the next number is located on the row below, more precisely either directly below or below and one place to the right;
* the number of rows is strictly positive, but less than 100
* all numbers are positive integers between O and 99.

My program for this program is not working

``````#include<iostream>
using namespace std;
void sum(int array[][101],int n);
int main()
{
int array[101][101];
int i,j,n;
cin>>n;

for(i=0;i<n;i++)
for(j=0;j<=n;j++)
{
if(j>i)
array[i][j]=0;
else
cin>>array[i][j];
}

int l=n-1;
while(l--)
{

sum(array,l-2);
}
for(i=0;i<n;i++)
cout<<array[0][i]<<" ";
}

void sum(int array[][101],int n)
{

for(int i=0;i<n;i++)
{
if((array[n][i]+array[n-1][i])>(array[n][i+1]+array[n-1][i]))
array[n-1][i]+=array[n][i];
else
array[n-1][i]+=array[n][i+1];
}

}``````

Its a project-euler.net problem No. 67 Right?
>My program for this program is not working
``````21 26 32 [U]15[/U] 14 84 68 12