you need to try something better as limits of A and B are very large :) you can not run a loop from A to B
i have not tried it but the logic is there will be many nos which will give the same value and we dont need to calculate for them all explicitply :) On Fri, Jun 17, 2011 at 2:52 PM, KK <kunalkapadi...@gmail.com> wrote: > To remove all digits left of the rightmost digit one in the binary > representation of some integer what we need to do is this: > ans = no & -no > and this is what is exactly asked in this problem of SPOJ: > www.spoj.pl/problems/MZVRK/ > > > #include<iostream> > using namespace std; > int main() > { > unsigned long long int a, b, sum; > while(scanf("%lld%lld", &a, &b) != EOF) > { > sum = 0; > while(a != (b+1)) > { > sum += (a & -a); > a++; > } > printf("%lld\n", sum); > } > return 0; > } > > Its giving TLE on some 10th case... > > -- > 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. > > -- Sunny Aggrawal B-Tech IV year,CSI Indian Institute Of Technology,Roorkee -- 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.