Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include <stdlib.h>
- int hoo(int a,int b);
- int hoo(int a,int b)
- {
- int temp;
- while(b!=0)
- {
- temp=b;
- b=a%b;
- a=temp;
- }
- return a;
- }
- typedef struct{
- int a;
- int b;
- int last;
- }set;
- int main()
- {
- int alpha=3,beta=5,goal=5;
- set q[10000];
- int n;
- int read=0;
- int write=0;
- for(n=0;n<10000;n++)
- {
- q[n].a=0;
- q[n].b=0;
- }
- if(hoo(hoo(alpha,beta),goal)==1) printf("fuck");
- else
- {
- printf("avaluable");
- while(!(q[read].a==goal || q[read].b==goal))
- {
- //refill a
- if(q[read].a==0)
- {
- write++;
- q[write].a=alpha;
- q[write].b=q[read].b;
- q[write].last=read;
- }
- //refill b
- if(q[read].b==0)
- {
- write++;
- q[write].a=q[read].a;
- q[write].b=beta;
- q[write].last=read;
- }
- //a to b
- if(q[read].a!=0 && q[read].b!=0)
- {
- if(q[read].a>beta-q[read].b)
- {
- q[write].a=q[read].a-(beta-q[read].b);
- q[write].b=beta;
- q[write].last=read;
- }
- else
- {
- q[write].a=0;
- q[write].b=q[read].b+q[read].a;
- q[write].last=read;
- }
- }
- //b to a
- if(q[read].a!=0 && q[read].b!=0)
- {
- write++;
- if(q[read].b>alpha-q[read].a)
- {
- q[write].b=q[read].b-(alpha-q[read].a);
- q[write].a=alpha;
- q[write].last=read;
- }
- else
- {
- q[write].b=0;
- q[write].a=q[read].a+q[read].b;
- q[write].last=read;
- }
- }
- //pour a
- if(q[read].a!=0)
- {
- write++;
- q[write].a=0;
- q[write].b=q[read].b;
- q[write].last=read;
- }
- //pour b
- if(q[read].b!=0)
- {
- write++;
- q[write].a=q[read].a;
- q[write].b=0;
- q[write].last=read;
- }
- read++;
- }
- }
- int flag=read-1;
- while(flag!=0)
- {
- printf("a:%d b:%d\n",q[flag].a,q[flag].b);
- flag=q[flag].last;
- }
- system("pause");
- }
Add Comment
Please, Sign In to add comment