#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int minimumTotal(vector<vector<int>>&triangle)
{
for(int i=triangle.size()-2;i>=0;--i)
{
for(int j=0;j<=i;++j)
triangle[i][j]+=min(triangle[i+1][j],triangle[i+1][j+1]);
}
return triangle[0][0];
}
int main()
{
vector<vector<int>>triangle;
vector<int>v;
v.push_back(2);
triangle.push_back(v);
v.clear();
v.push_back(3);
v.push_back(4);
triangle.push_back(v);
v.clear();
v.push_back(6);
v.push_back(5);
v.push_back(7);
triangle.push_back(v);
v.clear();
v.push_back(4);
v.push_back(1);
v.push_back(8);
v.push_back(3);
triangle.push_back(v);
cout<<minimumTotal(triangle)<<endl;
return 0;
}
#include<algorithm>
#include<vector>
using namespace std;
int minimumTotal(vector<vector<int>>&triangle)
{
for(int i=triangle.size()-2;i>=0;--i)
{
for(int j=0;j<=i;++j)
triangle[i][j]+=min(triangle[i+1][j],triangle[i+1][j+1]);
}
return triangle[0][0];
}
int main()
{
vector<vector<int>>triangle;
vector<int>v;
v.push_back(2);
triangle.push_back(v);
v.clear();
v.push_back(3);
v.push_back(4);
triangle.push_back(v);
v.clear();
v.push_back(6);
v.push_back(5);
v.push_back(7);
triangle.push_back(v);
v.clear();
v.push_back(4);
v.push_back(1);
v.push_back(8);
v.push_back(3);
triangle.push_back(v);
cout<<minimumTotal(triangle)<<endl;
return 0;
}