#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;
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGludCBuID0gNTsKCiAgICB2ZWN0b3I8aW50PiBwMV9mbGF0OwogICAgZm9yKGludCBpID0gMDsgaSA8IG4qbjsgKytpKSBwMV9mbGF0LnB1c2hfYmFjayhpKTsKCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHAxKG4sdmVjdG9yPGludD4obikpOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgY29weV9uKHAxX2ZsYXQuYmVnaW4oKStpKm4sbixwMVtpXS5iZWdpbigpKTsKCiAgICBmb3IoYXV0byBhOiBwMSkKICAgIHsKICAgICAgICBmb3IoYXV0byBiOiBhKSBjb3V0IDw8IHNldHcoMikgPDwgYiA8PCAiICI7CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQoKCn0K