fork download
  1. #include <iostream>
  2.  
  3. 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;}}
  4.  
  5. int main() {
  6. int** v = new int*[5];
  7. v[0] = new int[5]{1, 2, 3, 4, 5 };
  8. v[1] = new int[5]{16, 17, 18, 19, 6};
  9. v[2] = new int[5]{15, 24, 25, 20, 7};
  10. v[3] = new int[5]{14, 23, 22, 21, 8};
  11. v[4] = new int[5]{13, 12, 11, 10, 9};
  12. int* o = new int[5*5];
  13. F(v, o, 5);
  14. for (int i = 0; i < 5 * 5; ++i) {
  15. std::cout << o[i] << ' ';
  16. }
  17. std::cout << std::endl;
  18. delete[] o;
  19. delete[] v[0];
  20. delete[] v[1];
  21. delete[] v[2];
  22. delete[] v[3];
  23. delete[] v[4];
  24. delete[] v;
  25. return 0;
  26. }
Success #stdin #stdout 0s 4340KB
stdin
Standard input is empty
stdout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25