#include <iostream>
void F(int**v,int*o,int S){int s=0,i=0;--S;while(S>0){for(int c=s;c<=S;++c)o[i++]=v[s][c];for(int c=s+1;c<=S;++c)o[i++]=v[c][S];for(int c=S-1;c>=s;--c)o[i++]=v[S][c];for(int c=S-1;c>=s+1;--c)o[i++]=v[c][s];--S;++s;}}
int main() {
int** v = new int*[5];
v[0] = new int[5]{1, 2, 3, 4, 5 };
v[1] = new int[5]{16, 17, 18, 19, 6};
v[2] = new int[5]{15, 24, 25, 20, 7};
v[3] = new int[5]{14, 23, 22, 21, 8};
v[4] = new int[5]{13, 12, 11, 10, 9};
int* o = new int[5*5];
F(v, o, 5);
for (int i = 0; i < 5 * 5; ++i) {
std::cout << o[i] << ' ';
}
std::cout << std::endl;
delete[] o;
delete[] v[0];
delete[] v[1];
delete[] v[2];
delete[] v[3];
delete[] v[4];
delete[] v;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBGKGludCoqdixpbnQqbyxpbnQgUyl7aW50IHM9MCxpPTA7LS1TO3doaWxlKFM+MCl7Zm9yKGludCBjPXM7Yzw9UzsrK2Mpb1tpKytdPXZbc11bY107Zm9yKGludCBjPXMrMTtjPD1TOysrYylvW2krK109dltjXVtTXTtmb3IoaW50IGM9Uy0xO2M+PXM7LS1jKW9baSsrXT12W1NdW2NdO2ZvcihpbnQgYz1TLTE7Yz49cysxOy0tYylvW2krK109dltjXVtzXTstLVM7KytzO319CgppbnQgbWFpbigpIHsKCWludCoqIHYgPSBuZXcgaW50Kls1XTsKCXZbMF0gPSBuZXcgaW50WzVdezEsICAyLCAgMywgIDQsICA1IH07Cgl2WzFdID0gbmV3IGludFs1XXsxNiwgMTcsIDE4LCAxOSwgNn07Cgl2WzJdID0gbmV3IGludFs1XXsxNSwgMjQsIDI1LCAyMCwgN307Cgl2WzNdID0gbmV3IGludFs1XXsxNCwgMjMsIDIyLCAyMSwgOH07Cgl2WzRdID0gbmV3IGludFs1XXsxMywgMTIsIDExLCAxMCwgOX07CglpbnQqIG8gPSBuZXcgaW50WzUqNV07CglGKHYsIG8sIDUpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCA1ICogNTsgKytpKSB7CgkJc3RkOjpjb3V0IDw8IG9baV0gPDwgJyAnOwoJfQoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCWRlbGV0ZVtdIG87CQoJZGVsZXRlW10gdlswXTsKCWRlbGV0ZVtdIHZbMV07CglkZWxldGVbXSB2WzJdOwoJZGVsZXRlW10gdlszXTsKCWRlbGV0ZVtdIHZbNF07CglkZWxldGVbXSB2OwoJcmV0dXJuIDA7Cn0=