#include <vector>
#include <algorithm>
#include <iostream>
#include <iomanip>

using namespace std;


int main(int argc, const char * argv[])
{
    int n = 5;

    vector<int> p1_flat;
    for(int i = 0; i < n*n; ++i) p1_flat.push_back(i);

    vector<vector<int>> p1(n,vector<int>(n));

    for(int i = 0; i < n; ++i)
        copy_n(p1_flat.begin()+i*n,n,p1[i].begin());

    for(auto a: p1)
    {
        for(auto b: a) cout << setw(2) << b << " ";
        cout << endl;
    }


}
