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-1==y-j-1){
  17. c=-1;
  18. d=0;
  19. }
  20. else if(c<0&&!d&&i==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 1924KB
stdin
7 5
stdout
1 2 2
1 0
2 3 2
1 0
3 4 2
0 1
4 4 3
-1 0
5 3 3
-1 0
6 2 3
-1 0
7 1 3
0 -1
8 1 2
0 -1
9 1 1
1 0
10 2 1
1 0
11 3 1
1 0
12 4 1
1 0
13 5 1
0 1
14 5 2
0 1
15 5 3
0 1
16 5 4
-1 0
17 4 4
-1 0
18 3 4
-1 0
19 2 4
-1 0
20 1 4
-1 0
21 0 4
0 -1
22 0 3
0 -1
23 0 2
0 -1
24 0 1
0 -1
25 0 0
1 0
26 1 0
1 0
27 2 0
1 0
28 3 0
1 0
29 4 0
1 0
30 5 0
1 0
31 6 0
0 1
32 6 1
0 1
33 6 2
0 1
34 6 3
0 1
35 6 4
0 1
 25  26  27  28  29  30  31 
 24   9  10  11  12  13  32 
 23   8   1   2   3  14  33 
 22   7   6   5   4  15  34 
 21  20  19  18  17  16  35