fork download
  1. #include<stdio.h>
  2. int d,e;
  3. int rl;
  4. int res[4][3];
  5. int rev=0;
  6. void pushd(int i,int j,int f){
  7. // if(f==0)return;
  8. // if(res[rl-1][2]==f)return;
  9. res[rl][0]=i;
  10. res[rl][1]=j;
  11. res[rl][2]=f;
  12. rl++;
  13. }
  14. void process(int x,int y){
  15. int p,q;
  16. bool usey;
  17. if(y+e>=1 && y+e-x>=0){
  18. usey=true;
  19. p=y+e;
  20. q=p-x;
  21. }
  22. else{
  23. usey=false;
  24. p=x+e;
  25. q=p-y;
  26. }
  27. pushd(0,0,p);
  28. pushd(1,1,q);
  29. pushd(usey,!usey,e);
  30. }
  31. int main(){
  32. int x,y;
  33. scanf("%d%d",&x,&y);
  34. scanf("%d%d",&d,&e);
  35. scanf("%d%d",&x,&y);
  36. rev=0;
  37. res[0][2]=d;
  38. rl=1;
  39. if(y+e>=1 || (x+e>=1&&x+e-y>=0)){
  40. process(x,y);
  41. }
  42. else{
  43. rev=1;
  44. process(d-x-e,d-y-e);
  45. }
  46. printf("%d\n", rl-1);
  47. for(int i=1;i<rl;i++){
  48. printf("%d %d %d\n",
  49. (res[i][0]^rev)+1,
  50. (res[i][1]^rev)+1,
  51. res[i][2]);
  52. }
  53. }
Success #stdin #stdout 0.01s 5284KB
stdin
2 2 2 4 0 0
stdout
3
1 1 4
2 2 4
2 1 4