#include <iostream>
using namespace std;
void printArray(int **mainArray, int rc, int cc)
{
for(int c = 0;c<cc;c++)
{
for(int r = 0;r<rc;r++)
{
cout<<mainArray[r][c]<<" ";
}
cout<<endl;
}
}
void nullify(int **mainArray, int rc, int cc)
{
for(int r = 0;r<rc;r++)
{
for(int c = 0;c<cc;c++)
{
mainArray[r][c] = 0;
}
}
}
void populateArray(int **mainArray, int rc, int cc, int n)
{
nullify(mainArray, rc,cc);
int nn = 1;
for(int r = 0;r<rc;r++)
{
for(int c = 0;c<cc;c++)
{
if(nn<=n)
{
mainArray[r][c] = nn;
++nn;
}
}
}
}
int **createArray(int rows, int columns)
{
int **values = new int*[rows];
for(int i = 0;i<rows;i++)
{
values[i] = new int[columns];
}
return values;
}
int main() {
int n = 10;
//4 rows
const int rows = 4;
const int columns = (n/rows)+1;
int **array = createArray(rows, columns);
populateArray(array,rows,columns,n);
printArray(array,rows,columns);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcmludEFycmF5KGludCAqKm1haW5BcnJheSwgaW50IHJjLCBpbnQgY2MpCnsKICAgICAgICBmb3IoaW50IGMgPSAwO2M8Y2M7YysrKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcihpbnQgciA9IDA7cjxyYztyKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PG1haW5BcnJheVtyXVtjXTw8IiAiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICB9Cn0Kdm9pZCBudWxsaWZ5KGludCAqKm1haW5BcnJheSwgaW50IHJjLCBpbnQgY2MpCnsKICAgIGZvcihpbnQgciA9IDA7cjxyYztyKyspCiAgICB7CiAgICAgICAgZm9yKGludCBjID0gMDtjPGNjO2MrKykKICAgICAgICB7CiAgICAgICAgICAgIG1haW5BcnJheVtyXVtjXSA9IDA7CiAgICAgICAgfQogICAgfQogICAgfQp2b2lkIHBvcHVsYXRlQXJyYXkoaW50ICoqbWFpbkFycmF5LCBpbnQgcmMsIGludCBjYywgaW50IG4pCnsKICAgICAgICBudWxsaWZ5KG1haW5BcnJheSwgcmMsY2MpOwogICAgICAgIGludCBubiA9IDE7CiAgICAgICAgZm9yKGludCByID0gMDtyPHJjO3IrKykKICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGMgPSAwO2M8Y2M7YysrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihubjw9bikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5BcnJheVtyXVtjXSA9IG5uOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgfQp9CmludCAqKmNyZWF0ZUFycmF5KGludCByb3dzLCBpbnQgY29sdW1ucykKewoJCWludCAqKnZhbHVlcyA9IG5ldyBpbnQqW3Jvd3NdOwogICAgICAgIGZvcihpbnQgaSA9IDA7aTxyb3dzO2krKykKICAgICAgICB7CiAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSBuZXcgaW50W2NvbHVtbnNdOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdmFsdWVzOwp9CmludCBtYWluKCkgewogICAgICAgIGludCBuID0gMTA7CiAgICAgICAgLy80IHJvd3MKICAgICAgICBjb25zdCBpbnQgcm93cyA9IDQ7CiAgICAgICAgY29uc3QgaW50IGNvbHVtbnMgPSAobi9yb3dzKSsxOwogICAgICAgIGludCAqKmFycmF5ID0gY3JlYXRlQXJyYXkocm93cywgY29sdW1ucyk7CiAgICAgICAgcG9wdWxhdGVBcnJheShhcnJheSxyb3dzLGNvbHVtbnMsbik7CiAgICAgICAgcHJpbnRBcnJheShhcnJheSxyb3dzLGNvbHVtbnMpOwogICAgICAgIHJldHVybiAwOwp9Cg==