Guest User

Untitled

a guest
Feb 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int hoo(int a,int b);
  5. int hoo(int a,int b)
  6. {
  7. int temp;
  8. while(b!=0)
  9. {
  10. temp=b;
  11. b=a%b;
  12. a=temp;
  13. }
  14. return a;
  15. }
  16. typedef struct{
  17. int a;
  18. int b;
  19. int last;
  20. }set;
  21. int main()
  22. {
  23. int alpha=3,beta=5,goal=5;
  24. set q[10000];
  25. int n;
  26. int read=0;
  27. int write=0;
  28. for(n=0;n<10000;n++)
  29. {
  30. q[n].a=0;
  31. q[n].b=0;
  32. }
  33. if(hoo(hoo(alpha,beta),goal)==1) printf("fuck");
  34. else
  35. {
  36. printf("avaluable");
  37. while(!(q[read].a==goal || q[read].b==goal))
  38. {
  39. //refill a
  40. if(q[read].a==0)
  41. {
  42. write++;
  43. q[write].a=alpha;
  44. q[write].b=q[read].b;
  45. q[write].last=read;
  46. }
  47. //refill b
  48. if(q[read].b==0)
  49. {
  50. write++;
  51. q[write].a=q[read].a;
  52. q[write].b=beta;
  53. q[write].last=read;
  54. }
  55. //a to b
  56. if(q[read].a!=0 && q[read].b!=0)
  57. {
  58.  
  59. if(q[read].a>beta-q[read].b)
  60. {
  61. q[write].a=q[read].a-(beta-q[read].b);
  62. q[write].b=beta;
  63. q[write].last=read;
  64. }
  65. else
  66. {
  67. q[write].a=0;
  68. q[write].b=q[read].b+q[read].a;
  69. q[write].last=read;
  70. }
  71. }
  72. //b to a
  73. if(q[read].a!=0 && q[read].b!=0)
  74. {
  75. write++;
  76. if(q[read].b>alpha-q[read].a)
  77. {
  78. q[write].b=q[read].b-(alpha-q[read].a);
  79. q[write].a=alpha;
  80. q[write].last=read;
  81. }
  82. else
  83. {
  84. q[write].b=0;
  85. q[write].a=q[read].a+q[read].b;
  86. q[write].last=read;
  87. }
  88. }
  89. //pour a
  90. if(q[read].a!=0)
  91. {
  92. write++;
  93. q[write].a=0;
  94. q[write].b=q[read].b;
  95. q[write].last=read;
  96. }
  97. //pour b
  98. if(q[read].b!=0)
  99. {
  100. write++;
  101. q[write].a=q[read].a;
  102. q[write].b=0;
  103. q[write].last=read;
  104. }
  105. read++;
  106. }
  107. }
  108. int flag=read-1;
  109. while(flag!=0)
  110. {
  111. printf("a:%d b:%d\n",q[flag].a,q[flag].b);
  112. flag=q[flag].last;
  113. }
  114.  
  115. system("pause");
  116.  
  117. }
Add Comment
Please, Sign In to add comment