I don't think that your solution assures that the elevator stays in its bounds. Don
On Nov 15, 12:49 pm, UTKARSH SRIVASTAV <usrivastav...@gmail.com> wrote: > hi don please tell me where am i wrong in this maths in solving this > question. > > let x = number of times to press up button > let y = number of times to press down button > k = g -s > so we have > u*x - d*y = k ----------->(1) > we have to minimize x + y > so from (1) x = (k+d*y)/u; > x + y = (k + d*y)/u + y > now if u analyze (k + dy ) should be integer > so (k + d* y) %u = 0 > k%u + (d*y)%u = 0; > (dy)%u = u - (k%u) > dy = pu + (u - (k%u)) > where p is any integer > y = pu/d +(u -(k%u))/d > so for y to be minimum > p = 0; > so y = (u - (k%u))/d; > if we know y we can get x and x + y > > CORRECT ME IF I AM WRONG > > > > On Tue, Nov 15, 2011 at 4:12 AM, Don <dondod...@gmail.com> wrote: > > I solved this one with a breadth-first search. > > Don > > > On Nov 14, 8:27 am, Anshul AGARWAL <anshul.agarwa...@gmail.com> wrote: > > > problem ishttp://www.spoj.pl/problems/ELEVTRBL/ > > > and my solution is give wrong answer on spoj . Plz help me to find in > > which > > > case my solution give wrong answer. > > > > * > > > #include<iostream> > > > ** > > > #include<stdio.h> > > > using namespace std; > > > int main() > > > { > > > long long int f,s,u,d,g,c,p; > > > > scanf("%lld%lld%lld%lld%lld",&f,&s,&g,&u,&d); > > > > p=0; > > > > if(s==g) > > > printf("0\n"); > > > if(s>g&&u==0&&d!=0) > > > { > > > int temp=s-g; > > > if((temp/d)*d==temp) > > > { > > > p=temp/d; > > > printf("%lld\n",p); > > > > } > > > else > > > printf("use the stairs\n"); > > > > } > > > else if(s>g) > > > { > > > int temp =s; > > > s=g; > > > g=temp; > > > > // cout<<"2"<<endl; > > > } > > > //cout<<"1"<<endl; > > > c=s; > > > if(s<g) > > > { while(1) > > > { > > > int temp=g-c; > > > int q; > > > if(u==0) > > > { > > > if(c==g) > > > { > > > printf("0\n"); > > > break; > > > } > > > else > > > { > > > printf("use the stairs\n"); > > > break; > > > } > > > } > > > if(temp/u==(temp/u)*u) > > > { > > > q=temp/u; > > > > } > > > else > > > q=temp/u+1; > > > > if((c+q*u)<=f) > > > { // cout<<"1"<<endl; > > > p=p+q; > > > c=(q)*u+c; > > > //cout<<c<<endl; > > > } > > > else > > > {//cout<<"2"<<endl; > > > p=p+temp/u; > > > c=(temp/u)*u+c; > > > } > > > if(c==g) > > > { > > > // cout<<"3"<<endl; > > > printf("%lld",p); > > > break; > > > } > > > if(u==d||d==0||((u%d==0)&&d!=0)||(d%u==0&&u!=0)) > > > { > > > > printf("use the stairs\n"); > > > break;} > > > if(c-d>=0) > > > { // cout<<"4"<<endl; > > > c=c-d; > > > p+=1; > > > // cout<<c<<endl; > > > } > > > else > > > { > > > // cout<<"5"<<endl; > > > printf("use the stairs\n"); > > > break; > > > } > > > } > > > } > > > > } > > > > Anshul Agarwal > > > Nit Allahabad > > > Computer Science** > > > * > > > -- > > You received this message because you are subscribed to the Google Groups > > "Algorithm Geeks" group. > > To post to this group, send email to algogeeks@googlegroups.com. > > To unsubscribe from this group, send email to > > algogeeks+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/algogeeks?hl=en. > > -- > *UTKARSH SRIVASTAV > CSE-3 > B-Tech 3rd Year > @MNNIT ALLAHABAD* -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.