fork(4) download
  1. #define log(x) printf(#x": %d\n", x)
  2. a,b,c,d,e,i,j,x,y,**z;
  3. p(){
  4. j=y;
  5. while(j--){
  6. i=x;
  7. while(i--)printf("%3d ",z[x-i-1][y-j-1]);
  8. puts("");
  9. }
  10. }
  11. f(){
  12. if(c>0&&!d&&x-i-1==j){
  13. c=0;
  14. d=1;
  15. }
  16. else if(!c&&d>0&&x-i-1==y-j-1){
  17. c=-1;
  18. d=0;
  19. }
  20. else if(c<0&&!d&&i+1==y-j-1){
  21. c=0;
  22. d=-1;
  23. }
  24. else if(!c&&d<0&&i==j){
  25. c=1;
  26. d=0;
  27. }
  28. printf("%d %d\n",c,d);
  29. i+=c;
  30. j+=d;
  31. }
  32. main(){
  33. scanf("%d%d",&x,&y);
  34. z=malloc(x*4);
  35. i=x;
  36. while(i--)z[i]=malloc(y*4);
  37.  
  38. if(x<y){
  39. a=x/2;
  40. b=y/2;
  41. a=a<b?a:b;
  42. b=(a<b?a:b)-!(x%2);
  43. d=1;
  44. }
  45. else{
  46. a=x/2-!(x%2);
  47. b=y/2-!(y%2);
  48. c=1;
  49. }
  50.  
  51. i=a;
  52. j=b;
  53.  
  54. while(e++<x*y){
  55. z[i][j]=e;
  56. printf("%d %d %d\n",e,i,j);
  57. f();
  58. }
  59.  
  60. p();
  61. }
Success #stdin #stdout 0s 1968KB
stdin
5 6
stdout
1 2 2
0 1
2 2 3
-1 0
3 1 3
0 -1
4 1 2
0 -1
5 1 1
1 0
6 2 1
1 0
7 3 1
0 1
8 3 2
0 1
9 3 3
0 1
10 3 4
-1 0
11 2 4
-1 0
12 1 4
-1 0
13 0 4
0 -1
14 0 3
0 -1
15 0 2
0 -1
16 0 1
0 -1
17 0 0
1 0
18 1 0
1 0
19 2 0
1 0
20 3 0
1 0
21 4 0
0 1
22 4 1
0 1
23 4 2
0 1
24 4 3
0 1
25 4 4
0 1
26 4 5
-1 0
27 3 5
-1 0
28 2 5
-1 0
29 1 5
-1 0
30 0 5
-1 0
 17  18  19  20  21 
 16   5   6   7  22 
 15   4   1   8  23 
 14   3   2   9  24 
 13  12  11  10  25 
 30  29  28  27  26