fork(5) 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%2==y-j-1){
  17. c=-1;
  18. d=0;
  19. }
  20. else if(c<0&&!d&&i+!(y%2)==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. a=a<b?a:b;
  49. b=a<b?a:b;
  50. c=1;
  51. }
  52.  
  53. i=a;
  54. j=b;
  55.  
  56. while(e++<x*y){
  57. z[i][j]=e;
  58. printf("%d %d %d\n",e,i,j);
  59. f();
  60. }
  61.  
  62. p();
  63. }
Success #stdin #stdout 0s 1968KB
stdin
6 4
stdout
1 1 1
1 0
2 2 1
1 0
3 3 1
1 0
4 4 1
0 1
5 4 2
-1 0
6 3 2
-1 0
7 2 2
-1 0
8 1 2
-1 0
9 0 2
0 -1
10 0 1
0 -1
11 0 0
1 0
12 1 0
1 0
13 2 0
1 0
14 3 0
1 0
15 4 0
1 0
16 5 0
0 1
17 5 1
0 1
18 5 2
0 1
19 5 3
-1 0
20 4 3
-1 0
21 3 3
-1 0
22 2 3
-1 0
23 1 3
-1 0
24 0 3
-1 0
 11  12  13  14  15  16 
 10   1   2   3   4  17 
  9   8   7   6   5  18 
 24  23  22  21  20  19