#include <iostream>
#include <vector>
std::vector<int> getPascalTriangleRow(int rowIndex) {
long len = rowIndex + 1;
std::vector<int> vec(len, 0);
vec[0] = 1;
if (rowIndex ==0) return vec;
vec[len - 1] = 1;
if (rowIndex == 1) return vec;
long last = len - 1;
long i = 1, j = len - 2;
while (i <= j) {
vec[i] = vec[i - 1] * last / i;
vec[j] = vec[i - 1] * last / i;
last--;
i++;
j--;
}
return vec;
}
int main() {
std::vector<int> vec = getPascalTriangleRow(4);
for (int n : vec) {
std::cout << n << " ";
}
}
/*
run:
1 4 6 4 1
*/