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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.