#include <iostream> // std::cout, std::endl
#include <iomanip> // std::setw
int Pascal(int ,int );
int Factorial( int);
int main () {
int n=0;//Number of rows in the triangle
for(int i=12;i>0;i--)
{
std::cout << std::setw(i)<<std::endl;
for (int j=1;j<12-i;j++)
{
int r=0; //rth element initialized for each row
int P= Pascal(i,j);
std::cout << P ;
std::cout <<std::setw(2);
r=r+1;
}
n=n+1;
}
std::cout<<n<<std::endl;
std::cout<<std::endl;
return 0;
}
int Pascal(int r,int n)
{
int d = n-r; ///Difference of n with r
int f1; ///factorial of n
int f2; ///factorial of r
int f3; ///factorial of (n-r)
f1=Factorial(n);
f2=Factorial(r);
f3=Factorial(d);
return f1/(f2*f3);
}
int Factorial( int begin )
{
int F;
if ( begin == 0 )
{
return 1;
}
else
{
F= begin*Factorial(begin-1);
}
return F;
}
ICAgICAgICAgICNpbmNsdWRlIDxpb3N0cmVhbT4gICAgIC8vIHN0ZDo6Y291dCwgc3RkOjplbmRsCiAgICAgICAgICAjaW5jbHVkZSA8aW9tYW5pcD4gICAgICAvLyBzdGQ6OnNldHcKICAgICAgICAgIGludCBQYXNjYWwoaW50ICxpbnQgKTsKICAgICAgICAgIGludCBGYWN0b3JpYWwoIGludCk7CiAgICAgICAgICBpbnQgbWFpbiAoKSB7CgoKICAgICAgICAgICAgICAgICAgIGludCBuPTA7Ly9OdW1iZXIgb2Ygcm93cyBpbiB0aGUgdHJpYW5nbGUKICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaT0xMjtpPjA7aS0tKQogICAgICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgc3RkOjpzZXR3KGkpPDxzdGQ6OmVuZGw7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0xO2o8MTItaTtqKyspCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpbnQgcj0wOyAvL3J0aCBlbGVtZW50IGluaXRpYWxpemVkIGZvciBlYWNoIHJvdwogICAgICAgICAgICAgICAgICAgICBpbnQgUD0gUGFzY2FsKGksaik7CiAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBQIDsKICAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8c3RkOjpzZXR3KDIpOwogICAgICAgICAgICAgICAgICAgICByPXIrMTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbj1uKzE7CgogICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgc3RkOjpjb3V0PDxuPDxzdGQ6OmVuZGw7CiAgICAgICAgICAgICAgIHN0ZDo6Y291dDw8c3RkOjplbmRsOwoKICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgIH0KICAgICAgICAgICBpbnQgUGFzY2FsKGludCByLGludCBuKQogICAgICAgICAgIHsKICAgICAgICAgIGludCBkID0gbi1yOyAvLy9EaWZmZXJlbmNlIG9mIG4gd2l0aCByCiAgICAgICAgICBpbnQgZjE7IC8vL2ZhY3RvcmlhbCBvZiBuCiAgICAgICAgICBpbnQgZjI7IC8vL2ZhY3RvcmlhbCBvZiByCiAgICAgICAgICBpbnQgZjM7IC8vL2ZhY3RvcmlhbCBvZiAobi1yKQoKICAgICAgICAgIGYxPUZhY3RvcmlhbChuKTsKICAgICAgICAgIGYyPUZhY3RvcmlhbChyKTsKICAgICAgICAgIGYzPUZhY3RvcmlhbChkKTsKCiAgICAgICAgICByZXR1cm4gZjEvKGYyKmYzKTsKCiAgICAgICAgICAgICB9CiAgICAgICAgICAgaW50IEZhY3RvcmlhbCggaW50IGJlZ2luICkKICAgICAgICAgICAgewogICAgICAgICAgICAgIGludCBGOwogICAgICAgICAgaWYgKCBiZWdpbiA9PSAwICkKICAgICAgICAgIHsKICAgICAgICAgICAgICAgcmV0dXJuIDE7IAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAgICAgICBGPSBiZWdpbipGYWN0b3JpYWwoYmVnaW4tMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBGOyAgICAgICAgIAogICAgICAgICAgICAgIH0=